Analiza podatkov z uporabo Scale
Zelo pomembno je izbrati pravo orodje za analizo podatkov. Na forumih Kaggle, kjer potekajo mednarodna tekmovanja Data Science, se ljudje pogosto sprašujejo, katero orodje je boljše. R in Python sta na vrhu seznama. V tem članku vam bomo povedali o alternativnem nizu tehnologij za analizo podatkov, ki temelji na Scali.
By Roman Zykov, ustanovitelj/podatkovni znanstvenik @ TopDataLab
Zelo pomembno je izbrati pravo orodje za analizo podatkov. Na Kaggle.com forumih, kjer potekajo mednarodna tekmovanja Data Science, se ljudje pogosto sprašujejo, katero orodje je boljše. R in Python sta na vrhu seznama. V tem članku vam bomo povedali o alternativnem nizu tehnologij za analizo podatkov, ki temelji na programskem jeziku Scala in Spark porazdeljena računalniška platforma.
Kako smo prišli do tega? Pri Retail Rocket izvajamo veliko strojnega učenja na zelo velikih nizih podatkov. Včasih smo za razvoj prototipov uporabljali kup IPython + Pyhs2 (hive gonilnik za Python) + Pandas + Sklearn. Konec poletja 2014 smo sprejeli temeljno odločitev o prehodu na Spark, saj so poskusi pokazali, da bomo dosegli 3- do 4-kratno izboljšanje zmogljivosti na istem parku strežnikov.
Druga prednost je, da lahko uporabimo en programski jezik za modeliranje in kodo, ki se bo izvajala na produkcijskih strežnikih. To je bila velika prednost za nas, saj smo prej uporabljali 4 jezike hkrati: Hive, Pig, Java, Python. To je problem za majhno ekipo inženirjev.
Spark dobro podpira delo s Python/Scala/Java prek API-jev. Za Scalo smo se odločili, ker je to jezik, v katerem je napisan Spark, kar pomeni, da lahko analiziramo njegovo izvorno kodo in po potrebi odpravimo napake. Je tudi JVM, na katerem teče Hadoop.
Moram reči, da izbira ni bila lahka, saj nihče v ekipi takrat ni poznal Scale.
Splošno znano dejstvo je, da se morate za učenje dobrega sporazumevanja v jeziku poglobiti v jezik in ga uporabljati čim več. Zato smo opustili sklad Python v korist Scala za modeliranje in hitro analizo podatkov.
Prvi korak je bil najti zamenjavo za prenosnike IPython. Možnosti so bile naslednje:
- Zeppelin – IPythonu podoben prenosnik za Spark;
- ISpark;
- Spark Notebook;
- IBM-ov prenosnik Spark IPython.
- Apache Toree
Doslej je bil izbran ISpark, ker je preprost – to je IPython za Scala/Spark. Razmeroma enostavno je bilo priskočiti na HighCharts in R grafiko. In brez težav smo ga povezali z grozdom Yarn.
Naloga
Poskusimo odgovoriti na vprašanje: ali je povprečni znesek nakupa (AOV) v vaši spletni trgovini odvisen od statičnih parametrov stranke, ki vključujejo poravnavo, vrsto brskalnika (mobilni/namizni), operacijski sistem in različico brskalnika? To lahko storite z Vzajemne informacije.
Entropijo veliko uporabljamo za naše priporočilne algoritme in analizo: klasična Shannonova formula, divergenca Kullback-Leibler, vzajemna informacija. Oddali smo celo prispevek na to temo. V znamenitem Murphyjevem učbeniku o strojnem učenju je tem ukrepom posvečen ločen, čeprav majhen del.
Analizirajmo ga na resničnih podatkih Retail Rocket. Pred tem sem kopiral vzorec iz naše gruče v svoj računalnik kot datoteko csv.
datum
Tukaj uporabljamo ISpark in Spark, ki delujeta v lokalnem načinu, kar pomeni, da se vsi izračuni izvajajo lokalno in so porazdeljeni med procesorska jedra. Vse je opisano v komentarjih k kodi. Najpomembneje je, da v izhodu dobimo RDD (Spark data structure), ki je zbirka case classov tipa Row, ki je definiran v kodi. To vam bo omogočilo sklicevanje na polja prek ».«, na primer _.categoryId.
Vir: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Prednost
- algoritmi
- vsi
- Amazon
- med
- Analiza
- Apache
- API-ji
- aplikacije
- članek
- Bolt
- brskalnik
- hrošči
- izgradnjo
- Bunch
- spremenite
- Charts
- Koda
- komentarji
- Tekmovanja
- računalništvo
- datum
- Analiza podatkov
- znanost o podatkih
- podatkovni znanstvenik
- deliti
- globoko učenje
- Razvoj
- DID
- porazdeljeno računalništvo
- voznik
- Inženiring
- Inženirji
- itd
- Excel
- izkušnje
- poskus
- raziskovanje
- Obraz
- družina
- FAST
- Lastnosti
- Področja
- prva
- fiksna
- Ustanovitelj
- Okvirni
- GitHub
- Hadoop
- tukaj
- Panj
- Kako
- Kako
- HTTPS
- velika
- Podatki
- interaktivno
- Facebook Global
- IT
- Java
- jezik
- jeziki
- velika
- UČITE
- učenje
- Knjižnica
- vrstica
- Seznam
- lokalna
- lokalno
- Long
- strojno učenje
- Stroji
- matematika
- Meritve
- Microsoft
- modeliranje
- Najbolj popularni
- zvezki
- na spletu
- spletna trgovina
- odprite
- open source
- deluje
- operacijski sistem
- možnosti
- Da
- drugi
- Papir
- ljudje
- performance
- perspektiva
- Fizika
- platforma
- Popular
- Portfelj
- proizvodnja
- Programiranje
- Projekt
- nakup
- Python
- Trgovina na drobno
- Run
- tek
- Lestvica
- Znanost
- Znanstveniki
- nastavite
- naselje
- Enostavno
- Velikosti
- spretnosti
- majhna
- So
- Software
- Vesolje
- trgovina
- zgodbe
- predložen
- poletje
- Podprti
- Podpira
- Preklop
- sistem
- Tehnologije
- Testiranje
- Graf
- čas
- vrh
- enotnosti
- URI
- us
- vrednost
- web
- Wikipedia
- okna
- delo
- X
- let
- nič