Zephyrnet-logo

Edelweiss verbetert cross-sell met behulp van machine learning op Amazon SageMaker

Datum:

Dit bericht is mede geschreven door Nikunj Agarwal, hoofd datawetenschapper bij Edelweiss Tokio Life Insurance. Edelweiss Tokio Life Insurance Company Ltd is een toonaangevende levensverzekeringsmaatschappij in India. Het brede scala aan aanbiedingen omvat levensverzekeringen, ziektekostenverzekeringen, pensioenpolissen, vermogensverbeteringsregelingen, onderwijsfinanciering en meer.

Hoe wordt u een creditcard aanbevolen op basis van uw spaarrekeninggedrag? Wat dacht je van een levensverzekering als je een autoverzekering afsluit, of een bijgerecht als je een hoofdgerecht bestelt via je app voor eten bestellen? Deze worden gedaan met behulp van een oefening genaamd cross-selling, die klanten uitnodigt om gerelateerde of gratis artikelen te kopen op basis van hun huidige aankopen. Met name in de verzekeringsbranche is het vaak gemakkelijker om aan bestaande klanten te cross-sellen dan om nieuwe klanten te werven. De kans is bijvoorbeeld groter dat u een beleggings- of pensioenpolis verkoopt aan een bestaande levensverzekeringsklant dan probeert een willekeurige nieuwe lead te benaderen. Als de cross-sell-aanpak echter niet datagedreven is, leidt dit vaak tot de verkeerde selectie van klanten of beleid. Als je je ergert aan momenten dat een irrelevant product je herhaaldelijk wordt aangeboden, heeft de cross-sell-strategie niet goed gewerkt. Voor bedrijven resulteert dit in gemiste kansen en verminderde klanttevredenheid.

Bij Edelweiss hebben we een datagestuurde oplossing bedacht met behulp van machine learning (ML) om de behoeften van onze klanten beter te begrijpen en vervolgens het beleidsaanbod te identificeren dat het beste aan die behoeften voldoet. Om deze oplossing te ontwikkelen, werkten we samen met: Amazon ML Solutions-lab om de beste modelleringstechnieken te kiezen om onze aanbevelingen voor cross-sell nauwkeurig te maken. Dit bericht vat samen hoe we onze modellen hebben gebouwd Amazon Sage Maker om onze op maat gemaakte cross-sell-oplossing te ontwikkelen.

Een ML-oplossing formuleren

Terwijl we een nauwkeurige cross-sell-oplossing aan het bedenken waren, waren we ons bewust van het vermogen ervan om zich aan te passen aan veranderend klantgedrag en product(beleids)functies. ML was in deze context een logische keuze. We hebben de oplossing gedefinieerd als een combinatie van twee verschillende ML-modellen:

  • Neigingsmodel voor cross-sell – Wanneer u tienduizenden klanten heeft om aan te cross-sellen, is uw eerste prioriteit om de meest veelbelovende prospects van hen te vinden. Hiervoor is een gesuperviseerd classificatiemodel geconceptualiseerd. Het is ontworpen om de cross-sell-vooruitzichten te identificeren, samen met een propenity-score tussen 0-1, die de waarschijnlijkheid van conversie aangeeft (1 is de hoogste). U kunt de propensity-scores gebruiken om de geclassificeerde prospects te groeperen in verschillende prioriteitssegmenten voor verdere inzage door zakelijke teams.
  • Beleidsaanbevelingsmodel – Nadat u een prospect voor cross-sell hebt geïdentificeerd, moet u weten welk beleid hen het beste van pas komt. Dat is waar de aanbevelingsmotor in beeld kwam. Het doel was om de drie belangrijkste polissen voor elke prospect te rangschikken en aan te bevelen.

Vroege inzichten uit de gegevens

We zijn begonnen met ongeveer 100,000 records met meer dan 200 kenmerken rond klanten en polissen. Bestaande cross-sell-cases kunnen worden gelabeld met behulp van een reeks bedrijfsregels.

We hebben verkennende data-analyse (EDA) van de dataset gedaan om de kenmerken, kwaliteit en voorspellende kracht van de data te beoordelen. De beschrijvende (univariate) analyse heeft ons geholpen om kenmerken met kwaliteitsproblemen te detecteren, zoals ontbrekende waarden, lage variantie, lage entropie, hoge kardinaliteit, scheefheid en meer, en corrigerende maatregelen te nemen.

Het EDA-proces hielp bij het tot stand brengen van enkele van de duidelijke afspraken, zoals de relatie tussen cross-sell en klantsegmenten, inkomen en opleiding. We vonden ook wat meer genuanceerde inzichten. Nieuwe klanten met eerdere kopers uit hun respectievelijke families hebben bijvoorbeeld meer kans om cross-sell-klanten te worden, of agenten met relatief minder ervaring in de organisatie droegen meer bij aan cross-sells. Dit kan worden toegeschreven aan het feit dat de minder ervaren agenten een relatief kleiner aantal klanten behandelden en daardoor meer tijd konden investeren om de cross-sells binnen hun portefeuille te verbeteren.

Deze inzichten boden een indicatie met betrekking tot de kenmerken die de prestaties van het cross-sell propensity classificatiemodel sterk zouden kunnen beïnvloeden. Na het scoren en rangschikken van functies als onderdeel van de modelleringsfase, bleken de meeste van deze inzichten relevant te zijn.

Verder verkennen

Paarsgewijze correlatie, meestal gemeten met de correlatiecoëfficiënt van Pearson, is de meest populaire bivariate analysetechniek die de statistische associatie tussen twee continue kenmerken meet. Het wordt gemeten als de covariantie van de twee kenmerken gedeeld door het product van hun standaarddeviaties. Intuïtief geeft het de grootte en richting van de associatie van het kenmerkpaar aan.

Wanneer toegepast op onze dataset, onthulde paarsgewijze correlatieanalyse een significant niveau van correlatie tussen veel continue kenmerkparen, zoals basispremie en jaarlijkse premie met servicebelasting, verzekeringspremie en verzekerd bedrag, en meer. Daarom was er ruimte voor dimensionaliteitsreductie met behulp van technieken zoals PCA en t-SNE. De PCA-uitkomst, zoals aangetoond in de volgende grafiek, duidde op een mogelijkheid om de numerieke kenmerkruimte te verkleinen.

Als volgende stap zijn we diep gedoken om te begrijpen welke functies het meest bijdragen aan de belangrijkste hoofdcomponenten. Om dit te begrijpen, hebben we de feature maps van de topcomponenten geëxtraheerd, zoals weergegeven in de volgende grafiek.

PCA-analyse van een subset van de numerieke attributen

De feature map view is een belangrijke input omdat het ons helpt de belangrijke features en hun onderlinge relaties te identificeren. Als we kijken naar de functiecombinaties voor een component als geheel, is het gemakkelijk om het concept te begrijpen dat door die component wordt vertegenwoordigd. Een component kan bijvoorbeeld de financiële en inkomensgerelateerde kenmerken van de indiener vertegenwoordigen, terwijl een andere de ervaring of vintage niveaus van de relatiemanagers en veldagenten vertegenwoordigt.

De verkennende analyse van de gegevens heeft ons geholpen deze beter te begrijpen en passende verfijningsmaatregelen te nemen, zoals toerekeningen van ontbrekende waarden, het vermijden van kenmerken met een zeer lage variantie of entropie, het verminderen van redundantie en hoge dimensionaliteit veroorzaakt door gecorreleerde kenmerken, het ontwikkelen van nieuwe kenmerken, enzovoort. Bovendien hielp het begrijpen van de belangrijkste kenmerken van de gegevens, zoals volume, variantie, numerieke versus categorische invloed, kardinaliteit en scheefheid, ons bij het selecteren van de geschikte modelleringsaanpak.

Het propensity-model bouwen met SageMaker

Het gegevensvolume en de aard van de gegevens waren de belangrijkste overwegingen bij de beslissing over de oplossing voor het propensity-classificatiemodel. Omdat de gegevens volledig gestructureerd waren en niet te hoog in volume waren, waren op neurale netwerken gebaseerde varianten niet de meest geschikte opties. Aan de andere kant leken op ensembles gebaseerde classificaties de juiste keuze, vooral gezien de hoge dimensionaliteit van gegevens en het grote aantal categorische kenmerken, waarvan vele met een hoge kardinaliteit.

Omdat one-hot-codering niet kan worden geschaald voor functies met een hoge kardinaliteit, moesten we andere opties overwegen, zoals labelcodering, hash-codering en doelcodering. We gebruikten CatBoost, een op gradiëntversterking gebaseerd, ensemble-leerraamwerk dat een robuust mechanisme biedt voor het verwerken en combineren van categorische gegevens. Volgens de ensemble-modelleringsprincipes combineert CatBoost veel binaire beslissingsbomen (zwakke leerlingen) om een ​​uniform model te vormen (sterke leerling). Het schat de doelstatistiek om de categorieën van elk categorisch kenmerk met een hoge kardinaliteit weer te geven en clustert deze categoriewaarden vervolgens in een klein aantal groepen. Vervolgens is het kleine aantal groepen dat de categorische kenmerken vertegenwoordigt, één-hot-gecodeerd of label-gecodeerd.

Deze benadering helpt bij het verwerken van zeer hoge kardinaliteit zonder hun associaties met de doelvariabele te verliezen. Andere opmerkelijke voordelen zijn geordende boosting, het aanpakken van de voorspellingsverschuivingsproblemen (latente doellekkage) als gevolg van hebzuchtige boosting in reguliere gradiëntverhogende benaderingen, en functiecombinaties, die helpen bij het genereren van nieuwe functies door meerdere categorische functies te combineren, waardoor de voorspellende kracht van het model wordt verbeterd .

Een CatBoost-model trainen

De volgende voorbeeldcode traint a CatBoostClassifier, die we vervolgens uitvoeren via SageMaker:

%%writefile catboost_training.py import boto3
import argparse
import logging
import os
import numpy as np
import pandas as pd
from catboost import CatBoostClassifier
from sklearn.metrics import balanced_accuracy_score, recall_score, precision_score, f1_score if __name__ =='__main__': logger = logging.getLogger() logger.setLevel(logging.INFO) print('Extracting arguments') parser = argparse.ArgumentParser() parser.add_argument('--train_file', type=str) parser.add_argument('--test_file', type=str) parser.add_argument('--model_file', type=str) parser.add_argument('--target', type=str) parser.add_argument('--categorical_fields', type=str) parser.add_argument('--learning_rate', type=str) parser.add_argument('--depth', type=str) parser.add_argument('--imbalance_penalty', type=str, default='3') args, _ = parser.parse_known_args() logging.info('Reading data . . .') train_df = pd.read_csv(args.train_file) test_df = pd.read_csv(args.test_file) logging.info('Building training and testing datasets . . .') categorical_fields = args.categorical_fields.split() X_train = train_df[[col for col in train_df.columns if col != args.target]] X_val = test_df[[col for col in train_df.columns if col != args.target]] y_train = train_df[args.target] y_val = test_df[args.target] # Sample fixed hyper-parameters model_params = dict() model_params['iterations'] = 1000 model_params['loss_function'] = 'Logloss' model_params['eval_metric'] = 'F1' model_params['random_seed'] = 21 # Read hyperparameters as arguments (to tune in future using SageMaker) model_params['depth'] = int(args.depth) model_params['learning_rate'] = float(args.learning_rate) imbalance_penalty_factor = int(args.imbalance_penalty) # minority_weight assignment for binary classes: 0 and 1 minority_class_weight = imbalance_penalty_factor * (len(y_train) - sum(y_train)) / sum(y_train) model_params['class_weights'] = [1, minority_class_weight] model = CatBoostClassifier(**model_params) model.fit(X_train, y_train, cat_features=categorical_fields, eval_set=(X_val, y_val), verbose=False) y_val_pred = model.predict(data=X_val) precision = precision_score(y_val, y_val_pred) recall = recall_score(y_val, y_val_pred) f1 = f1_score(y_val, y_val_pred) # Increase the influence of recall in the model evaluation metric model_score = f1 * recall logging.info ('Precision: {:.3f}'.format(precision)) logging.info ('Recall: {:.3f}'.format(recall)) logging.info ('F1: {:.3f}'.format(f1)) logging.info ('ModelScore: {:.3f}'.format(model_score)) # persist model model.save_model(args.model_file)

In de voorgaande code hebben we hogere klassegewichten gekalibreerd voor de minderheidsklasse met behulp van imbalance_penalty_factor (zie de opmerking) # minority_weight assignment for binary classes: 0 and 1 in de code) om het model te straffen voor zijn mislukkingen bij het leren classificeren van cross-sell-gevallen. Dit komt omdat historische gegevens scheefheid aangaven: de fractie cross-sell cases was aanzienlijk laag in vergelijking met single-sell cases. Vanwege de hoge dimensionaliteit van gegevens hebben we ervoor gekozen geen oversampling-technieken zoals SMOTE te gebruiken.

De trainingscode overdragen en uitvoeren op SageMaker

We hebben de trainingscode naadloos overgezet naar SageMaker, ons organisatiebrede ML-platform, om te profiteren van de functies zoals beheerde training en automatische modelafstemming.

Een eenvoudige manier om dit te doen, is door een SageMaker-compatibele Docker-afbeelding te maken die bestaat uit de code en configuratiebestanden. Nadat de afbeelding is gemaakt, wordt deze gepusht naar Amazon Elastic Container-register (Amazon ECR). Wanneer de training of hosting wordt gelanceerd, gebruikt SageMaker deze afbeelding om containers te lanceren en al het nodige zware werk te doen om de pijplijnen te beheren.

Het volgende codefragment laat zien hoe u de training op SageMaker start met een paar regels code. Nadat de Docker-afbeelding is geregistreerd bij Amazon ECR, krijgt u een URL die als parameter aan de klasse Estimator moet worden doorgegeven:

import tarfile
from sagemaker.estimator import Estimator program = 'catboost_training.py'
project = 'cb_classifier'
src_zip = 'scripts.tar.gz' # compress the code and upload in S3
tar = tarfile.open(source, 'w:gz')
tar.add(program)
tar.close() submit_dir = sess.upload_data( path=src_zip, bucket=bucket, key_prefix=project+ '/' + src_zip) output_path = "s3://{}/{}/training_jobs".format(bucket, project) # Create the SageMaker Estimator using custom container and training script
# container_image_uri indicates the ECR uri of the container docker image
# program and submit_dir relate to the python training script
# categorical_fields is a string listing the categorical fields
# 'cross_sell' is the classification target field
model = Estimator(container_image_uri, role=role, train_instance_count=1, train_instance_type='ml.m5.xlarge', output_path=output_path, hyperparameters={'sagemaker_program': program, 'sagemaker_submit_directory': submit_dir, 'categorical_fields': categorical_fields, 'target': 'cross_sell'})

De modelhyperparameters afstemmen met behulp van automatische modelafstemming

Modelhyperparameters, zoals boomdiepte, zaktemperatuur, leersnelheid en onbalans-penaltyfactor, werden afgestemd met behulp van automatische modelafstemming in SageMaker, dat meerdere trainingstaken start met verschillende hyperparametercombinaties. SageMaker traint een meta ML-model, gebaseerd op Bayesiaanse optimalisatie, om hyperparametercombinaties voor onze trainingstaken af ​​te leiden. De hyperparameter_ranges (in de volgende code) werden gekozen op basis van ervaring. We vermijden te brede hyperparameterbereiken om trainingstijd en kosten te besparen. Als een hyperparameter echter de onder- of bovengrens van zijn initiële bereik bereikt na optimalisatie, wat aangeeft dat het bereik onvoldoende is, moet het model opnieuw worden afgestemd met een breder bereik dat is gespecificeerd voor de respectieve hyperparameter.

Het volgende voorbeeldcodefragment illustreert hoe u hyperparameters kunt optimaliseren tegen een vooraf gedefinieerde doelstelling met behulp van de HyperparameterTuner klasse:

from sagemaker.tuner import HyperparameterTuner
from sagemaker.tuner import IntegerParameter, CategoricalParameter, ContinuousParameter hyperparameter_ranges = {'learning_rate': ContinuousParameter(0.05,0.25), 'depth': IntegerParameter(3,5), 'imbalance_penalty': IntegerParameter(1,4) } objective_metric_name = 'ModelScore'
objective_type = 'Maximize'
#'ModelScore' metric used below is being logged from catboost_training.py
metric_definitions = [{'Name': 'ModelScore', 'Regex': 'ModelScore: ([0-9\.]+)'}] tuner = HyperparameterTuner(estimator=model, objective_metric_name=objective_metric_name, hyperparameter_ranges=hyperparameter_ranges, metric_definitions=metric_definitions, max_jobs=64, max_parallel_jobs=8, objective_type=objective_type, strategy= "Bayesian") tuner.fit({'train':train_data_s3_location, 'test': test_data_s3_location}, logs=True) print (tuner.best_estimator().hyperparameters()) boto3.client('sagemaker').describe_hyper_parameter_tuning_job( HyperParameterTuningJobName=tuner.latest_tuning_job.job_name) print ('Best training job: {}'.format(tuner.best_training_job()))

Batchvoorspellingen genereren

Nadat het optimale model is getraind, kunt u online of als batch voorspellingen genereren. In ons geval hadden we de voorspelling in batchmodus nodig. We gebruikten de batch-transformatie functie in SageMaker om dit te bereiken.

Het volgende codefragment illustreert hoe u batchvoorspellingen uitvoert met behulp van de transformer functie op het SageMaker-schatterobject dat het afgestemde model vertegenwoordigt:

# S3 location for the batch prediction output
transform_output_folder = "batch-transform-output"
output_path="s3://{}/{}".format(bucket, transform_output_folder) # Get the batch transformer for the trained model (estimator)
transformer = model.transformer(instance_count=1, instance_type='ml.m4.xlarge', output_path=output_path, max_payload = 100, strategy='MultiRecord', accept='text/csv') test_data = sess.upload_data(path="test.csv", bucket=bucket) # Run batch transformation (prediction)
# Predictions will be available at output_path
transformer.transform(test_data, content_type='text/csv', split_type='Line')
transformer.wait()

Resultaten van het propensity-model

We gebruikten precisie, terugroepactie en F1 als modelstatistieken. In de context van dit zakelijke probleem was het vinden van meer cross-sell-prospects belangrijker dan correct zijn bij elke prospect-classificatie, dus hebben we het model afgestemd om een ​​hogere recall te bereiken, wat aangeeft welk percentage van de werkelijke cross-sell-cases uit de validatie set correct werd geclassificeerd door het model. We hebben dit bereikt door een afgeleide objectieve statistiek te maken (ModelScore) als het product van F1-score en herinnering en het maximaliseren ervan door middel van afstemming. Als de gewenste, relatieve prioriteit van recall ten opzichte van precisie vooraf bekend is, kan een variant van de F1-score, zoals de Fbeta-score, ook worden beschouwd als de objectieve maatstaf.

Nadat de prospects voor cross-sell zijn geclassificeerd, worden ze geprioriteerd en gesorteerd op basis van hun respectievelijke propensity-scores. Na een paar iteraties van feature-engineering en afstemming van hyperparameters, bereikten we de acceptabele prestatiestatistieken (terugroepactie van meer dan 80% met een precisie van meer dan 40%).

Nadat de prospects voor cross-selling zijn geclassificeerd, moeten ze worden gerangschikt en gegroepeerd in prioriteitssegmenten. We organiseerden ze in groepen van 10 deciel op basis van hun propensity-scores (waarschijnlijkheid) en de stijging van elk deciel werd berekend om de kwaliteit van de voorspellingen te begrijpen. Met deze informatie kunnen we beslissen hoeveel van de decielen we moeten kiezen, en in welke volgorde, om de respectieve prospects voor cross-selling te bereiken.

In termen van modelevaluatie en -selectie werd de goedheid van het model afgemeten aan het vermogen om zoveel mogelijk van de daadwerkelijke cross-sellklanten in de hoogste decielen te classificeren: 1, 2 en 3. Zoals aangetoond in de volgende decieltabel, het eerste deciel omvat 58% van de cross-sell-gevallen met een hoge waarschijnlijkheidsband. In het tweede en derde deciel zijn respectievelijk 80% en 88% gevallen gedekt.

deciel Min waarschijnlijkheid maximale kans Cross-sell-fractie Cumulatieve cross-sell-fractie lift
1 0.89 1.0 0.78 0.58 5.75
2 0.67 0.89 0.30 0.80 3.98
3 0.51 0.67 0.10 0.88 2.92
4 0.41 0.51 0.07 0.93 2.31
5 0.32 0.41 0.03 0.97 1.91

Deze evaluatiestrategie hielp ons ook om de aanvaardbare precisie- en recall-niveaus voor het model empirisch via meerdere iteraties te finaliseren. Bovendien helpt de cross-sell-dekkingsstatistiek op decielniveau ons om de prestaties van het model voortdurend te monitoren. Hoe meer dekking in de bovenste decielen, hoe beter.

Het aanbevelingsmodel bouwen

De engine voor beleidsaanbevelingen is ontwikkeld met behulp van SVD. SVD is een beproefd matrixfactorisatiemechanisme dat de latente concepten probeert te identificeren die de klant (U) verbinden met verschillende beleidstypen (V). De latente concepten kunnen de kenmerken vertegenwoordigen die klanten doorgaans van een verzekeringspolis zoeken, bijvoorbeeld bescherming, rendement en totaalrendement. Het aanbevelingsmodel is ontworpen om de drie belangrijkste beleidsaanbevelingen voor elke cross-sell prospect te leveren. Belangrijke hyperparameters van het model, zoals aantal factoren, tijdperken, leersnelheid en regularisatietermen, werden afgestemd voordat ze in productie werden genomen.

Daarnaast hebben we een ad-hocmogelijkheid gebouwd om de transactiegegevens te ontginnen met behulp van frequente patroonextractie-algoritmen zoals Apriori en FP-Growth om de populaire productbundels te begrijpen, namelijk de verzekeringspoliscombinaties die klanten over een bepaalde periode kopen en in welke volgorde . We kunnen dergelijke inzichten gebruiken om de beleidsaanbevelingen te valideren en te filteren, en ook om de onderlinge relatie tussen ons aanbod en de voorkeuren en aankooppatronen van onze consumenten beter te begrijpen.

Putting het allemaal samen

Uit een eerste analyse bleek dat onze klanten tot twee verschillende profielen behoorden:

  • Klanten verwierven lang geleden via tussenpersonen. Veel van deze agenten waren niet meer actief betrokken bij de onderneming.
  • Rechtstreekse inkopers van verzekeringen, voor wie geen tussenpersoon of externe instanties betrokken waren. De meeste van deze klanten zijn relatief recent verworven en gemakkelijk bereikbaar.

Deze twee sets hadden statistisch significante verschillen in veel van de belangrijke kenmerken. Daarom hebben we besloten om ze apart te behandelen en er twee aparte ML-pijplijnen voor te bouwen.

In het volgende diagram worden de belangrijkste stappen in elk van de twee ML-pijplijnen weergegeven.

De pijplijn bevat de volgende onderdelen:

  • Invoergegevens bestaande uit klantgegevens, organisatiegegevens, productgegevens, interacties en andere informatie
  • Functiegeneratie voordat ze konden worden gebruikt voor modelimplementatie
  • Een cross-sell propensity-model om de prospect-decielen te genereren die we kunnen gebruiken om prospects te prioriteren
  • Prioritering van cross-sell prospects via decielberekening
  • Een cross-sell aanbevelingsmodel om drie best passende beleidsregels voor een bepaalde prospect te genereren

Conclusie

Met het ML-gedreven cross-sell-proces kunnen we onze cross-sell-aanbevelingen nu vanuit een breder, data-gedreven perspectief sturen. We kunnen identificeren wie van ons klantenbestand het meest geïnteresseerd is in cross-sell-producten en welk beleid het meest geschikt is voor hun behoeften. Dit zou de conversieratio's moeten verbeteren en ongevraagde verkoopconnecties moeten verminderen.

Enkele van de tussentijdse analytische resultaten, zoals de samenstelling van de hoofdcomponenten, de belangrijkheidsstatistieken en de analyse van populaire productbundels, hebben ons geholpen om meer inzicht te krijgen in de behoeften van onze klanten en belangrijke cross-sell-influencers vanuit verschillende demografische, organisatorische en beleidsperspectieven.

Verschillende SageMaker-functies, zoals notebooks, beheerde training, batchtransformatie en automatische modelafstemming, hebben bijgedragen aan het standaardiseren en versnellen van onze werkstromen voor modelontwikkeling, inferentie en onderhoud.

Met het cross-sell-model hebben we ons cross-sell-percentage met 200% kunnen verhogen in vergelijking met het vorige boekjaar, met een conversie van 75% uit het high propensity-segment. Nu we onze ML-workloads op SageMaker hebben gestandaardiseerd, kijken we ernaar uit om de beste ervaring voor onze klanten te blijven creëren. Als u hulp wilt bij het versnellen van uw gebruik van ML in uw producten en processen, neem dan contact op met de ML Solutions Lab-programma.


Over de auteurs

Nikunj Agarwal leidt het Data Science-team bij Edelweiss. Hij werkt met Sales- en Enterprise-functies en levert machine learning-modellen aan verschillende zakelijke functies.

Tomal Deb is een datawetenschapper in het Amazon Machine Learning Solutions Lab. Hij heeft gewerkt aan een breed scala aan data science-problemen met betrekking tot NLP, Recommender Systems, Forecasting, Numerical Optimization, enz.

Atanu Roy is Principal Deep Learning Architect in het Amazon ML Solutions Lab en leidt het team voor India. Hij heeft gewerkt aan ML-problemen rond productaanbevelingen, prognoses, fraudedetectie en voorspellend onderhoud in domeinen als detailhandel, online platforms, nutsbedrijven enz. Hij besteedt het grootste deel van zijn vrije tijd en geld aan zijn soloreizen. Momenteel werkt Atanu ook graag aan Reinforcement Learning-problemen.

Sanket Dhurandhar leidt de AI & Machine Learning-activiteiten bij AWS India en heeft een belangrijke rol gespeeld bij het bieden van thought Leadership voor het aansturen van door Machine Learning geleide transformationele strategieën om AWS-klanten in ondernemingen en Digital Native-startups te helpen meetbare "Operational Excellence" te bereiken. Voorheen heeft Sanket in een professionele loopbaan van meer dan 18 jaar met Microsoft, SAS en Oracle Financial Services gewerkt.

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://aws.amazon.com/blogs/machine-learning/edelweiss-improves-cross-sell-using-machine-learning-on-amazon-sagemaker/

spot_img

Laatste intelligentie

spot_img