Dataanalys med Scala
Det är mycket viktigt att välja rätt verktyg för dataanalys. På Kaggle -forumen, där internationella Data Science -tävlingar hålls, frågar folk ofta vilket verktyg som är bättre. R och Python är högst upp på listan. I den här artikeln kommer vi att berätta om en alternativ stapel dataanalysteknik, baserad på Scala.
By Roman Zykov, Grundare/Data Scientist @ TopDataLab
Det är mycket viktigt att välja rätt verktyg för dataanalys. På Kaggle.com forum, där internationella Data Science -tävlingar hålls, frågar folk ofta vilket verktyg som är bättre. R och Python är högst upp på listan. I den här artikeln kommer vi att berätta om en alternativ stack av dataanalystekniker, baserat på Scala programmeringsspråk och Gnista distribuerad datorplattform.
Hur kom vi på det? På Retail Rocket gör vi mycket maskininlärning på mycket stora datamängder. Vi brukade använda ett gäng IPython + Pyhs2 (bikupa -drivrutin för Python) + Pandas + Sklearn för att utveckla prototyper. I slutet av sommaren 2014 tog vi ett grundläggande beslut att byta till Spark, eftersom experiment har visat att vi kommer att få 3-4 gånger bättre prestanda på samma park av servrar.
En annan fördel är att vi kan använda ett programmeringsspråk för modellering och kod som körs på produktionsservrar. Detta var en stor fördel för oss, eftersom vi tidigare använde 4 språk samtidigt: Hive, Pig, Java, Python. Det är ett problem för ett litet team av ingenjörer.
Spark stöder att arbeta med Python/Scala/Java väl via API: er. Vi bestämde oss för att välja Scala eftersom det är språket Spark är skrivet på, vilket innebär att vi kan analysera dess källkod och åtgärda buggar om det behövs. Det är också JVM som Hadoop körs på.
Jag måste säga att valet inte var lätt, eftersom ingen i laget kände Scala vid den tiden.
Det är ett välkänt faktum att för att lära sig att kommunicera bra på ett språk måste du fördjupa dig i språket och använda det så mycket som möjligt. Så vi övergav Python -stacken till förmån för Scala för modellering och snabb dataanalys.
Det första steget var att hitta en ersättare för IPython -bärbara datorer. Alternativen var följande:
- Zeppelin -en IPython-liknande anteckningsbok för Spark;
- ISpark;
- Spark Anteckningsbok;
- IBMs Spark IPython -anteckningsbok.
- Apache Tmalm
Hittills har valet varit ISpark eftersom det är enkelt - det är IPython för Scala/Spark. Det har varit relativt enkelt att bulta på HighCharts och R -grafik. Och vi hade inga problem att ansluta den till garnklustret.
uppgift
Låt oss försöka svara på frågan: beror det genomsnittliga inköpsbeloppet (AOV) i din webbutik på statiska kundparametrar, som inkluderar avveckling, webbläsartyp (mobil/skrivbord), operativsystem och webbläsarversion? Du kan göra detta med Ömsesidig information.
Vi använder entropi mycket för våra rekommendationsalgoritmer och analyser: den klassiska Shannon-formeln, Kullback-Leibler-divergensen, ömsesidig information. Vi skickade till och med ett papper om detta ämne. Det finns en separat, om än liten, sektion som ägnas åt dessa åtgärder i Murphys berömda lärobok om maskininlärning.
Låt oss analysera det på riktiga Retail Rocket -data. På förhand kopierade jag provet från vårt kluster till min dator som en csv -fil.
Data
Här använder vi ISpark och Spark som körs i lokalt läge, vilket innebär att alla beräkningar utförs lokalt och fördelas mellan processorkärnorna. Allt beskrivs i kommentarerna till koden. Det viktigaste är att vi i utdata får RDD (Spark datastruktur), som är en samling fallsklasser av typen Row, som definieras i koden. Detta gör att du kan hänvisa till fält via “.”, Till exempel _.categoryId.
Källa: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Fördel
- algoritmer
- Alla
- amason
- bland
- analys
- Apache
- API: er
- appar
- Artikeln
- Bult
- webbläsare
- fel
- SLUTRESULTAT
- Bunch
- byta
- Diagram
- koda
- kommentarer
- Tävlingar
- databehandling
- datum
- dataanalys
- datavetenskap
- datavetare
- som handlar om
- djupt lärande
- utveckla
- DID
- distribuerad databehandling
- chaufför
- Teknik
- Ingenjörer
- etc
- excel
- erfarenhet
- experimentera
- utforskning
- Ansikte
- familj
- SNABB
- Funktioner
- Fält
- Förnamn
- Fast
- grundare
- Ramverk
- GitHub
- Hadoop
- här.
- Bikupa
- Hur ser din drömresa ut
- How To
- HTTPS
- stor
- informationen
- interaktiva
- Internationell
- IT
- java
- språk
- Språk
- Large
- LÄRA SIG
- inlärning
- Bibliotek
- linje
- Lista
- lokal
- lokalt
- Lång
- maskininlärning
- Maskiner
- matematik
- Metrics
- Microsoft
- modellering
- Mest populär
- bärbara datorer
- nätet
- Online Store
- öppet
- öppen källkod
- drift
- operativsystem
- Tillbehör
- beställa
- Övrigt
- Papper
- Personer
- prestanda
- perspektiv
- Fysik
- plattform
- Populära
- portfölj
- Produktion
- Programmering
- projektet
- inköp
- Python
- detaljhandeln
- Körning
- rinnande
- Skala
- Vetenskap
- vetenskapsmän
- in
- lösning
- Enkelt
- Storlek
- färdigheter
- Small
- So
- Mjukvara
- Utrymme
- lagra
- Upplevelser för livet
- lämnats
- sommar
- Som stöds
- Stöder
- Växla
- system
- Tekniken
- Testning
- Grafen
- tid
- topp
- enhet
- URI
- us
- värde
- webb
- wikipedia
- fönster
- Arbete
- X
- år
- noll-