Zaznajte goljufive transakcije s pomočjo strojnega učenja z Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Zaznajte goljufive transakcije s pomočjo strojnega učenja z Amazon SageMaker

Podjetja lahko vsako leto izgubijo milijarde dolarjev zaradi zlonamernih uporabnikov in goljufivih transakcij. Ker se vse več poslovnih operacij seli na splet, naraščajo tudi goljufije in zlorabe v spletnih sistemih. Za boj proti spletnim goljufijam številna podjetja uporabljajo sisteme za odkrivanje goljufij, ki temeljijo na pravilih.

Vendar se tradicionalni sistemi za odkrivanje goljufij zanašajo na nabor pravil in filtrov, ki jih ročno oblikujejo strokovnjaki. Filtri so lahko pogosto krhki in pravila morda ne zajamejo celotnega spektra goljufivih signalov. Poleg tega, medtem ko se goljufivo vedenje nenehno razvija, statična narava vnaprej določenih pravil in filtrov otežuje učinkovito vzdrževanje in izboljšanje tradicionalnih sistemov za odkrivanje goljufij.

V tej objavi vam pokažemo, kako zgraditi dinamičen, samoizboljšljiv in vzdržljiv sistem za odkrivanje goljufij s kreditnimi karticami s strojnim učenjem (ML) z uporabo Amazon SageMaker.

Če pa iščete popolnoma upravljano storitev za izdelavo prilagojenih modelov za odkrivanje goljufij brez pisanja kode, priporočamo, da preverite Amazonski detektor prevare. Amazon Fraud Detector strankam brez izkušenj z ML omogoča avtomatizacijo gradnje modelov za odkrivanje prevar, prilagojenih njihovim podatkom, pri čemer izkorišča več kot 20-letno strokovno znanje in izkušnje AWS in Amazon.com pri odkrivanju prevar.

Pregled rešitev

Ta rešitev gradi jedro sistema za odkrivanje goljufij s kreditnimi karticami z uporabo SageMakerja. Začnemo z usposabljanjem nenadzorovanega modela za odkrivanje nepravilnosti z uporabo algoritma Naključno posekan gozd (RCF). Nato z uporabo algoritma urimo dva nadzorovana klasifikacijska modela XGBoost, eden kot osnovni model in drugi za napovedovanje, z uporabo različnih strategij za obravnavo izjemnega razrednega neravnovesja v podatkih. Na koncu usposobimo optimalen model XGBoost z optimizacija hiperparametrov (HPO) za nadaljnje izboljšanje delovanja modela.

Za vzorčni nabor podatkov uporabljamo javne, anonimizirane transakcije s kreditnimi karticami nabor podatkov ki je bil prvotno izdan kot del a Raziskave sodelovanje Worldline in Skupina za strojno učenje ULB (Université Libre de Bruxelles). V uvodu razpravljamo tudi o tem, kako lahko prilagodite rešitev za uporabo lastnih podatkov.

Izhodi rešitve so naslednji:

  • Brez nadzora SageMaker RCF model. Model izpiše rezultat anomalije za vsako transakcijo. Nizka vrednost ocene pomeni, da se transakcija šteje za normalno (ne goljufivo). Visoka vrednost pomeni, da je transakcija goljufiva. Opredelitve nizkega in visokega so odvisne od aplikacije, vendar običajna praksa kaže, da se rezultati, ki presegajo tri standardne deviacije od povprečnega rezultata, štejejo za nenormalne.
  • A pod nadzorom SageMaker XGBoost model, usposobljen s svojo vgrajeno shemo uteževanja za reševanje težave z zelo neuravnoteženimi podatki.
  • Nadzorovani model SageMaker XGBoost, usposobljen za uporabo Tehnika predvzorčenja sintetične manjšine (SMOTE).
  • Usposobljen model SageMaker XGBoost s HPO.
  • Napovedi verjetnosti, da je vsaka transakcija lažna. Če je ocenjena verjetnost transakcije nad pragom, je razvrščena kot goljufiva.

Za predstavitev, kako lahko to rešitev uporabite v svojih obstoječih poslovnih infrastrukturah, vključujemo tudi primer izvajanja klicev API-ja REST do razporejene končne točke modela z uporabo AWS Lambda za sprožitev obeh modelov RCF in XGBoost.

Naslednji diagram prikazuje arhitekturo rešitev.

Predpogoji

Če želite preizkusiti rešitev v svojem računu, se prepričajte, da imate naslednje:

Ko je instanca Studio pripravljena, lahko zaženete Studio in dostopate do JumpStart. Rešitve JumpStart niso na voljo v primerkih prenosnih računalnikov SageMaker in do njih ne morete dostopati prek API-jev SageMaker ali Vmesnik ukazne vrstice AWS (AWS CLI).

Zaženite rešitev

Za zagon rešitve, opravite naslednje korake:

  1. Odprite JumpStart z uporabo zaganjalnika JumpStart v Odkrij več ali tako, da izberete ikono JumpStart v levi stranski vrstici.
  2. Pod rešitve, izberite Odkrivanje zlonamernih uporabnikov in transakcij da odprete rešitev v drugem zavihku Studio.
    Poiščite rešitev
  3. Na zavihku rešitev izberite Zagon za zagon rešitve.
    Zaženite rešitev
    Viri rešitve so omogočeni in odpre se drug zavihek, ki prikazuje napredek uvajanja. Ko je razmestitev končana, an Odprite Beležnico se prikaže gumb.
  4. Izberite Odprite Beležnico da odprete zvezek rešitev v Studiu.
    Odpri zvezek

Raziščite in obdelajte podatke

Privzeti nabor podatkov vsebuje samo numerične funkcije, ker so bile prvotne funkcije preoblikovale z uporabo Analiza glavnih komponent (PCA) za zaščito zasebnosti uporabnikov. Posledično nabor podatkov vsebuje 28 komponent PCA, V1–V28, in dve funkciji, ki nista bili preoblikovani, Količina in Čas. Znesek se nanaša na znesek transakcije, čas pa je število sekund, ki so pretekle med katero koli transakcijo v podatkih in prvo transakcijo.

Stolpec Razred ustreza temu, ali je transakcija goljufiva ali ne.

Vzorčni podatki

Vidimo, da večina ni goljufivih, saj je od skupno 284,807 primerov le 492 (0.173 %) goljufivih. To je primer izjemnega razrednega neravnovesja, ki je običajno v scenarijih odkrivanja goljufij.

Neuravnoteženost podatkovnega razreda

Nato svoje podatke pripravimo za nalaganje in usposabljanje. Podatke razdelimo na niz vlakov in testni niz, pri čemer prvega uporabimo za usposabljanje, drugega pa za ocenjevanje delovanja našega modela. Pomembno je, da podatke razdelite pred uporabo kakršnih koli tehnik za ublažitev neravnovesja razredov. V nasprotnem primeru lahko pride do uhajanja informacij iz testnega niza v vlakovni komplet in škoduje delovanju modela.

Če želite vnesti lastne podatke o vadbi, se prepričajte, da so tabelarni podatki v formatu CSV, naložite podatke v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro in uredite pot objekta S3 v kodi zvezka.

Pot podatkov v S3

Če vaši podatki vključujejo kategorične stolpce z neštevilskimi vrednostmi, morate te vrednosti enkratno kodirati (na primer z uporabo sklearn OneHotEncoder), ker algoritem XGBoost podpira samo numerične podatke.

Usposobite nenadzorovan model Random Cut Forest

V scenariju odkrivanja goljufij imamo običajno zelo malo označenih primerov, označevanje goljufij pa lahko vzame veliko časa in truda. Zato želimo tudi pridobiti informacije iz neoznačenih podatkov, ki so pri roki. To naredimo z algoritmom za odkrivanje nepravilnosti, pri čemer izkoriščamo veliko neravnovesje podatkov, ki je običajno v naborih podatkov za odkrivanje goljufij.

Zaznavanje anomalij je oblika nenadzorovanega učenja, kjer poskušamo prepoznati nenormalne primere izključno na podlagi njihovih značilnosti. Random Cut Forest je najsodobnejši algoritem za odkrivanje nepravilnosti, ki je natančen in razširljiv. Z vsakim primerom podatkov RCF poveže oceno anomalije.

Uporabljamo vgrajeni algoritem RCF SageMaker za usposabljanje modela za odkrivanje nepravilnosti na našem naboru podatkov za usposabljanje, nato pa naredimo napovedi na našem naboru testnih podatkov.

Najprej ločeno preučimo in narišemo predvidene rezultate anomalije za pozitivne (goljufive) in negativne (negoljufive) primere, ker se število pozitivnih in negativnih primerov močno razlikuje. Pričakujemo, da bodo imeli pozitivni (goljufivi) primeri razmeroma visoke ocene anomalije, negativni (negoljufivi) pa nizke ocene anomalij. Iz histogramov lahko vidimo naslednje vzorce:

  • Skoraj polovica pozitivnih primerov (levi histogram) ima ocene anomalij višje od 0.9, medtem ko ima večina negativnih primerov (desni histogram) ocene anomalij nižje od 0.85.
  • Algoritem za nenadzorovano učenje RCF ima omejitve za natančno prepoznavanje primerov goljufij in primerov, ki niso goljufije. To je zato, ker niso uporabljene informacije na etiketi. To težavo obravnavamo z zbiranjem informacij o oznaki in uporabo algoritma nadzorovanega učenja v kasnejših korakih.

Predvideni rezultati anomalij

Nato predpostavimo bolj resničen scenarij, kjer vsak testni primer razvrstimo kot pozitiven (goljufiv) ali negativen (negoljufiv) na podlagi ocene anomalije. Histogram rezultatov izrišemo za vse testne primere, kot sledi, pri čemer za razvrstitev izberemo mejno oceno 1.0 (na podlagi vzorca, prikazanega v histogramu). Natančneje, če je rezultat anomalije primera nižji ali enak 1.0, je razvrščen kot negativen (ne goljufiv). V nasprotnem primeru je primer razvrščen kot pozitiven (goljufiv).

Histogram točk za testne vzorce

Nazadnje primerjamo rezultat klasifikacije z osnovnimi oznakami resnice in izračunamo metriko vrednotenja. Ker je naš nabor podatkov neuravnotežen, uporabljamo meritve vrednotenja uravnotežena natančnost, Cohenov rezultat Kappa, Ocena F1in AUC ROC, ker upoštevajo pogostost posameznega razreda v podatkih. Za vse te meritve večja vrednost pomeni boljšo napovedno uspešnost. Upoštevajte, da v tem koraku še ne moremo izračunati ROC AUC, ker ni ocenjene verjetnosti za pozitivne in negativne razrede iz modela RCF za vsak primer. To metriko izračunamo v kasnejših korakih z algoritmi za nadzorovano učenje.

. RCF
Uravnotežena natančnost 0.560023
Cohenova Kappa 0.003917
F1 0.007082
AUC ROC -

Iz tega koraka lahko vidimo, da lahko nenadzorovani model že doseže določeno ločitev med razredi, pri čemer so višji rezultati anomalij povezani s primeri goljufij.

Usposobite model XGBoost z vgrajeno shemo uteži

Ko zberemo ustrezno količino označenih podatkov o usposabljanju, lahko uporabimo algoritem nadzorovanega učenja, da odkrijemo razmerja med funkcijami in razredi. Izbrali smo algoritem XGBoost, ker ima preizkušene rezultate, je zelo razširljiv in lahko obravnava manjkajoče podatke. Tokrat moramo obravnavati neravnovesje podatkov, sicer bo večinski razred (negoljufivi ali negativni primeri) prevladoval pri učenju.

Naš prvi nadzorovani model usposabljamo in uvajamo z uporabo vsebnika algoritma XGBoost, vgrajenega v SageMaker. To je naš osnovni model. Za obravnavo podatkovnega neravnovesja uporabljamo hiperparameter scale_pos_weight, ki meri uteži pozitivnih primerov razreda proti negativnim primerom razreda. Ker je nabor podatkov močno popačen, smo ta hiperparameter nastavili na konzervativno vrednost: sqrt(num_nonfraud/num_fraud).

Model usposabljamo in uvajamo na naslednji način:

  1. Pridobite URI vsebnika SageMaker XGBoost.
  2. Nastavite hiperparametre, ki jih želimo uporabiti za usposabljanje modela, vključno s tistim, ki smo ga omenili, ki obravnava neravnovesje podatkov, scale_pos_weight.
  3. Ustvarite ocenjevalec XGBoost in ga usposobite z našim naborom podatkov o vlakih.
  4. Razmestite usposobljeni model XGBoost na končno točko, ki jo upravlja SageMaker.
  5. Ocenite ta osnovni model z našim testnim naborom podatkov.

Nato ovrednotimo naš model z istimi štirimi metrikami, kot so bile omenjene v zadnjem koraku. Tokrat lahko izračunamo tudi metriko ROC AUC.

. RCF XGBoost
Uravnotežena natančnost 0.560023 0.847685
Cohenova Kappa 0.003917 0.743801
F1 0.007082 0.744186
AUC ROC - 0.983515

Vidimo lahko, da je metoda nadzorovanega učenja XGBoost s shemo uteževanja (z uporabo hiperparametra scale_pos_weight) dosega bistveno boljše rezultate kot metoda nenadzorovanega učenja RCF. Še vedno pa je prostor za izboljšanje delovanja. Zlasti dvig vrednosti Cohen's Kappa nad 0.8 bi bil na splošno zelo ugoden.

Poleg meritev z eno vrednostjo si je koristno ogledati tudi meritve, ki kažejo uspešnost na razred. Na primer, matrika zmede, natančnost na razred, priklic in rezultat F1 lahko zagotovijo več informacij o uspešnosti našega modela.

Matrika zmede modela XGBoost

. natančnost odpoklic f1-rezultat podpora
ne goljufija 1.00 1.00 1.00 28435
goljufija 0.80 0.70 0.74 46

Še naprej pošiljajte testni promet končni točki prek Lambde

Za predstavitev uporabe naših modelov v produkcijskem sistemu smo zgradili API REST s Amazon API Gateway in funkcijo Lambda. Ko odjemalske aplikacije pošljejo zahteve za sklepanje HTTP API-ju REST, ta sproži funkcijo Lambda, ta pa prikliče končne točke modela RCF in XGBoost ter vrne napovedi iz modelov. Preberete lahko kodo funkcije Lambda in spremljate klice na konzoli Lambda.

Ustvarili smo tudi skript Python, ki naredi zahteve za sklepanje HTTP API-ju REST, z našimi preskusnimi podatki kot vhodnimi podatki. Če želite videti, kako je bilo to storjeno, preverite generate_endpoint_traffic.py datoteko v izvorni kodi rešitve. Izhodi predvidevanja se zabeležijo v vedro S3 prek an Amazon Kinesis Data Firehose tok dostave. Ime ciljnega vedra S3 najdete na konzoli Kinesis Data Firehose in preverite rezultate napovedi v vedru S3.

Usposobite model XGBoost s tehniko prekomernega vzorčenja SMOTE

Zdaj, ko imamo osnovni model z uporabo XGBoost, lahko vidimo, ali lahko tehnike vzorčenja, ki so zasnovane posebej za neuravnotežene težave, izboljšajo učinkovitost modela. Uporabljamo Preveliko vzorčenje sintetične manjšine (SMOTE), ki prevzorči manjšinski razred z interpolacijo novih podatkovnih točk med obstoječimi.

Koraki so naslednji:

  1. Uporabite SMOTE za prevzorčenje manjšinskega razreda (prevarantskega razreda) našega nabora podatkov o vlakih. SMOTE nadvzorči manjšinski razred od približno 0.17 do 50 %. Upoštevajte, da gre v tem primeru za izjemno preveliko vzorčenje manjšinskega razreda. Druga možnost bi bila uporaba manjšega razmerja ponovnega vzorčenja, na primer en vzorec manjšinskega razreda za vsakega sqrt(non_fraud/fraud) večinski vzorec ali z uporabo naprednejših tehnik ponovnega vzorčenja. Za več možnosti čezmernega vzorčenja glejte Primerjajte vzorčevalnike s prevelikim vzorčenjem.
  2. Definirajte hiperparametre za usposabljanje drugega XGBoost, tako da se scale_pos_weight odstrani in drugi hiperparametri ostanejo enaki kot pri usposabljanju osnovnega modela XGBoost. S tem hiperparametrom nam ni treba več obravnavati neravnovesja podatkov, ker smo to že storili s SMOTE.
  3. Usposobite drugi model XGBoost z novimi hiperparametri na naboru podatkov o vlaku, obdelanem SMOTE.
  4. Namestite nov model XGBoost na končno točko, ki jo upravlja SageMaker.
  5. Ocenite nov model s testnim naborom podatkov.

Pri ocenjevanju novega modela lahko vidimo, da s SMOTE XGBoost dosega boljšo zmogljivost pri uravnoteženi natančnosti, ne pa tudi pri rezultatih Cohen's Kappa in F1. Razlog za to je, da je SMOTE toliko prevzorčil razred goljufij, da je povečal njegovo prekrivanje v prostoru funkcij s primeri, ki niso goljufije. Ker Cohen's Kappa lažno pozitivnim rezultatom daje večjo težo kot uravnotežena natančnost, se metrika znatno zmanjša, prav tako natančnost in rezultat F1 za primere goljufije.

. RCF XGBoost XGBoost SMOTE
Uravnotežena natančnost 0.560023 0.847685 0.912657
Cohenova Kappa 0.003917 0.743801 0.716463
F1 0.007082 0.744186 0.716981
AUC ROC - 0.983515 0.967497

Vendar pa lahko ponovno vzpostavimo ravnotežje med metrikami s prilagoditvijo klasifikacijskega praga. Doslej smo kot prag za označevanje, ali je podatkovna točka goljufiva ali ne, uporabljali 0.5. Po preizkušanju različnih pragov od 0.1 do 0.9 lahko vidimo, da Cohenova kapa še naprej narašča skupaj s pragom, brez pomembne izgube uravnotežene natančnosti.

Preizkusite različne pragove, da ponovno vzpostavite ravnovesje med meritvami

To našemu modelu doda uporabno kalibracijo. Uporabimo lahko nizek prag, če je naša prednostna naloga, da ne izpustimo goljufivih primerov (lažno negativnih rezultatov), ​​ali pa prag povečamo, da zmanjšamo število lažno pozitivnih rezultatov.

Usposobite optimalen model XGBoost s HPO

V tem koraku prikazujemo, kako izboljšati zmogljivost modela z usposabljanjem našega tretjega modela XGBoost z optimizacijo hiperparametrov. Pri gradnji kompleksnih sistemov ML je ročno raziskovanje vseh možnih kombinacij vrednosti hiperparametrov nepraktično. Funkcija HPO v SageMakerju lahko pospeši vašo produktivnost tako, da v vašem imenu preizkusi številne različice modela. Samodejno poišče najboljši model tako, da se osredotoči na najbolj obetavne kombinacije vrednosti hiperparametrov znotraj obsegov, ki jih določite.

Proces HPO potrebuje validacijski nabor podatkov, zato smo svoje podatke o usposabljanju najprej dodatno razdelili na nabore podatkov o usposabljanju in validaciji z uporabo stratificirano vzorčenje. Za reševanje težave z neuravnoteženostjo podatkov ponovno uporabimo shemo tehtanja XGBoost in nastavimo scale_pos_weight hiperparameter za sqrt(num_nonfraud/num_fraud).

Ocenjevalnik XGBoost ustvarimo z vsebnikom algoritma XGBoost, ki je vgrajen v SageMaker, in določimo metriko objektivne ocene ter obsege hiperparametrov, znotraj katerih želimo eksperimentirati. S temi nato ustvarimo a HyperparameterTuner in začnite z naravnavanjem HPO, ki usposablja več modelov vzporedno in išče optimalne kombinacije hiperparametrov.

Ko je uglaševanje končano, si lahko ogledamo njegovo analitično poročilo in pregledamo hiperparametre vsakega modela, informacije o opravilu usposabljanja in njegovo učinkovitost glede na metriko objektivne ocene.

Seznam informacij o posameznem modelu iz posla uglaševanja

Nato uvedemo najboljši model in ga ovrednotimo z našim testnim naborom podatkov.

Ocenite in primerjajte vse zmogljivosti modela na istih preskusnih podatkih

Zdaj imamo rezultate ocenjevanja vseh štirih modelov: RCF, XGBoost baseline, XGBoost with SMOTE in XGBoost with HPO. Primerjajmo njihovo delovanje.

. RCF XGBoost XGBoost s SMOTE XGBoost s HPO
Uravnotežena natančnost 0.560023 0.847685 0.912657 0.902156
Cohenova Kappa 0.003917 0.743801 0.716463 0.880778
F1 0.007082 0.744186 0.716981 0.880952
AUC ROC - 0.983515 0.967497 0.981564

Vidimo lahko, da XGBoost s HPO dosega še boljše rezultate kot tisti z metodo SMOTE. Zlasti Cohenovi rezultati Kappa in F1 so nad 0.8, kar kaže na optimalno zmogljivost modela.

Čiščenje

Ko končate s to rešitvijo, se prepričajte, da ste izbrisali vse neželene vire AWS, da preprečite nenamerne stroške. V Izbriši rešitev razdelek na zavihku rešitve izberite Izbriši vse vire za brisanje virov, samodejno ustvarjenih ob zagonu te rešitve.

Očistite tako, da izbrišete rešitev

Lahko pa uporabite tudi Oblikovanje oblaka AWS za brisanje vseh standardnih virov, ki sta jih samodejno ustvarila rešitev in zvezek. Če želite uporabiti ta pristop, na konzoli AWS CloudFormation poiščite sklad CloudFormation, katerega opis vsebuje odkrivanje goljufij z uporabo strojnega učenja, in ga izbrišite. To je nadrejeni sklad in če izberete brisanje tega sklada, boste samodejno izbrisali ugnezdene sklade.

Počistite prek CloudFormation

Pri obeh pristopih morate še vedno ročno izbrisati vse dodatne vire, ki ste jih morda ustvarili v tem zvezku. Nekateri primeri vključujejo dodatna vedra S3 (poleg privzetega vedra rešitve), dodatne končne točke SageMaker (z uporabo imena po meri) in dodatne Registar elastičnih zabojnikov Amazon (Amazon ECR) repozitorije.

zaključek

V tej objavi smo vam pokazali, kako zgraditi jedro dinamičnega, samoizboljšljivega in vzdrževanega sistema za odkrivanje goljufij s kreditnimi karticami z uporabo ML s SageMakerjem. Zgradili, usposobili in uvedli smo nenadzorovan model za odkrivanje nepravilnosti RCF, nadzorovan model XGBoost kot osnovo, še en nadzorovan model XGBoost s SMOTE za reševanje problema neravnovesja podatkov in končni model XGBoost, optimiziran s HPO. Razpravljali smo o tem, kako obravnavati neravnovesje podatkov in uporabiti lastne podatke v rešitvi. Vključili smo tudi primer implementacije REST API z API Gateway in Lambda, da pokažemo, kako uporabljati sistem v vaši obstoječi poslovni infrastrukturi.

Če želite sami preizkusiti, odprite Studio SageMaker in zaženite rešitev JumpStart. Če želite izvedeti več o rešitvi, si oglejte njeno GitHub repozitorij.


O avtorjih

Xiaoli ShenXiaoli Shen je arhitekt rešitev in član skupnosti tehničnega področja strojnega učenja (TFC) pri Amazon Web Services. Osredotočena je na pomoč strankam pri arhitekturi v oblaku in izkoriščanju storitev AWS za pridobivanje poslovne vrednosti. Preden se je pridružila AWS, je bila vodja tehnologije in višja inženirka celotnega sklada, ki je gradila podatkovno intenzivne porazdeljene sisteme v oblaku.

Zaznajte goljufive transakcije s pomočjo strojnega učenja z Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.dr. Xin Huang je uporabni znanstvenik za vgrajene algoritme Amazon SageMaker JumpStart in Amazon SageMaker. Osredotoča se na razvoj razširljivih algoritmov strojnega učenja. Njegovi raziskovalni interesi so na področju obdelave naravnega jezika, razložljivega globokega učenja na tabelarnih podatkih in robustne analize neparametričnega prostorsko-časovnega združevanja. Objavil je številne prispevke na konferencah ACL, ICDM, KDD in v reviji Royal Statistical Society: Series A.

Zaznajte goljufive transakcije s pomočjo strojnega učenja z Amazon SageMaker PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Vedant Jain je starejši arhitekt za rešitve AI/ML, ki strankam pomaga pridobiti vrednost iz ekosistema strojnega učenja pri AWS. Preden se je pridružil AWS, je bil Vedant specializiran za ML/Data Science v različnih podjetjih, kot so Databricks, Hortonworks (zdaj Cloudera) in JP Morgan Chase. Zunaj svojega dela je Vedant navdušen nad ustvarjanjem glasbe, uporabo znanosti za smiselno življenje in raziskovanjem okusne vegetarijanske kuhinje z vsega sveta.

Časovni žig:

Več od Strojno učenje AWS