Tietojen analysointi Scalan avulla
On erittäin tärkeää valita oikea työkalu tietojen analysointiin. Kaggle -foorumeilla, joilla järjestetään kansainvälisiä Data Science -kilpailuja, ihmiset usein kysyvät, mikä työkalu on parempi. R ja Python ovat listan kärjessä. Tässä artikkelissa kerromme sinulle vaihtoehtoisesta pinosta tietojen analysointitekniikoita, jotka perustuvat Scalaan.
By Roman Zykov, Perustaja/tietotutkija @ TopDataLab
On erittäin tärkeää valita oikea työkalu tietojen analysointiin. Päällä Kaggle.com foorumeilla, joilla järjestetään kansainvälisiä Data Science -kilpailuja, ihmiset usein kysyvät, mikä työkalu on parempi. R ja Python ovat listan kärjessä. Tässä artikkelissa kerromme sinulle vaihtoehtoisesta pinosta tietojen analysointitekniikoita, jotka perustuvat Scala -ohjelmointikieleen ja Kipinä hajautettu laskentaympäristö.
Miten keksimme sen? Retail Rocketilla teemme paljon koneoppimista erittäin suurilla tietojoukoilla. Käytimme prototyyppien kehittämiseen joukkoa IPython + Pyhs2 (pesäohjain Pythonille) + Pandas + Sklearn. Kesän 2014 lopussa teimme perustavanlaatuisen päätöksen siirtyä Sparkiin, koska kokeet ovat osoittaneet, että saamme 3-4 kertaa paremman suorituskyvyn samassa palvelinpuistossa.
Toinen etu on, että voimme käyttää yhtä ohjelmointikieltä mallinnukseen ja koodiin, joka toimii tuotantopalvelimilla. Tästä oli meille valtava hyöty, koska ennen käytimme neljää kieltä samanaikaisesti: Hive, Pig, Java, Python. Se on ongelma pienelle insinööritiimille.
Spark tukee hyvin Python/Scala/Javan kanssa työskentelyä sovellusliittymien kautta. Päätimme valita Scalan, koska se on kieli, jolla Spark on kirjoitettu, mikä tarkoittaa, että voimme analysoida sen lähdekoodin ja korjata vikoja tarvittaessa. Se on myös JVM, jolla Hadoop toimii.
Minun on sanottava, että valinta ei ollut helppo, koska kukaan joukkueesta ei tuolloin tuntenut Scalaa.
On tunnettu tosiasia, että jos haluat oppia kommunikoimaan hyvin jollakin kielellä, sinun täytyy uppoutua kieleen ja käyttää sitä mahdollisimman paljon. Joten hylkäsimme Python -pinon Scalan hyväksi mallinnusta ja nopeaa tietojen analysointia varten.
Ensimmäinen askel oli löytää korvaaja IPython -kannettaville. Vaihtoehdot olivat seuraavat:
- Zeppelin -IPython-tyyppinen muistikirja Sparkille;
- ISpark;
- Spark -muistikirja;
- IBM: n Spark IPython -muistikirja.
- Apache T.oree
Toistaiseksi valinta on ollut ISpark, koska se on yksinkertainen - se on IPython for Scala/Spark. HighCharts- ja R -grafiikoiden kiinnittäminen on ollut suhteellisen helppoa. Ja meillä ei ollut ongelmia yhdistää se lankaklusteriin.
Tehtävä
Yritetään vastata kysymykseen: riippuuko verkkokaupan keskimääräinen ostosumma (AOV) staattisista asiakasparametreista, joihin kuuluvat selvitys, selaintyyppi (mobiili/pöytäkone), käyttöjärjestelmä ja selainversio? Voit tehdä tämän kanssa Keskinäinen tieto.
Käytämme paljon entropiaa suositusalgoritmeihimme ja analyyseihimme: klassinen Shannon-kaava, Kullback-Leibler-hajonta, keskinäiset tiedot. Lähetimme jopa paperin tästä aiheesta. Näille toimenpiteille on erillinen, vaikkakin pieni, osio Murphyn kuuluisassa koneoppimisen oppikirjassa.
Analysoidaan se todellisten Retail Rocket -tietojen perusteella. Aiemmin kopioin näytteen klusteristamme tietokoneelle csv -tiedostona.
Päiväys
Tässä käytetään ISparkia ja Sparkia paikallisessa tilassa, mikä tarkoittaa, että kaikki laskelmat suoritetaan paikallisesti ja jaetaan prosessorin ytimien kesken. Kaikki on kuvattu koodin kommenteissa. Tärkeintä on, että tuotoksessa saamme RDD: n (Spark data structure), joka on kokoelma koodissa määriteltyjä Row -tyyppisiä tapausluokkia. Tämän avulla voit viitata kenttiin “.” -Merkillä, esimerkiksi _.categoryId.
Suosituimmat tarinat viimeisen 30 päivän aikana | |||
---|---|---|---|
|
Lähde: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Etu
- algoritmit
- Kaikki
- Amazon
- keskuudessa
- analyysi
- Apache
- API
- sovellukset
- artikkeli
- Pultti
- selain
- Bugs
- rakentaa
- Nippu
- muuttaa
- Kaaviot
- koodi
- kommentit
- Kilpailut
- tietojenkäsittely
- tiedot
- tietojen analysointi
- tietojenkäsittely
- tietojen tutkija
- tekemisissä
- syvä oppiminen
- kehittää
- DID
- hajautettu laskenta
- kuljettaja
- Tekniikka
- Engineers
- jne.
- kunnostautua
- experience
- kokeilu
- tutkimus
- Kasvot
- perhe
- FAST
- Ominaisuudet
- Fields
- Etunimi
- Korjata
- perustaja
- Puitteet
- GitHub
- Hadoop
- tätä
- Hive
- Miten
- Miten
- HTTPS
- valtava
- tiedot
- vuorovaikutteinen
- kansainvälisesti
- IT
- Jaava
- Kieli
- kielet
- suuri
- OPPIA
- oppiminen
- Kirjasto
- linja
- Lista
- paikallinen
- paikallisesti
- Pitkät
- koneoppiminen
- Koneet
- matematiikka
- Metrics
- Microsoft
- mallintaminen
- Suosituin
- kannettavat tietokoneet
- verkossa
- verkkokauppa
- avata
- avoimen lähdekoodin
- toiminta
- käyttöjärjestelmän
- Vaihtoehdot
- tilata
- Muuta
- Paperi
- Ihmiset
- suorituskyky
- näkökulma
- Fysiikka
- foorumi
- Suosittu
- salkku
- tuotanto
- Ohjelmointi
- projekti
- osto
- Python
- vähittäiskauppa
- ajaa
- juoksu
- Scala
- tiede
- tutkijat
- setti
- tilitys
- Yksinkertainen
- Koko
- taitoja
- pieni
- So
- Tuotteemme
- Tila
- verkkokaupasta
- tarinat
- toimitettu
- kesä
- Tuetut
- Tukee
- Vaihtaa
- järjestelmä
- Technologies
- Testaus
- Kaavio
- aika
- ylin
- Yhtenäisyys
- URI
- us
- arvo
- verkko
- wikipedia
- ikkunat
- Referenssit
- X
- vuotta
- nolla-