Scala Kullanarak Veri Analizi
Veri analizi için doğru aracı seçmek çok önemlidir. Uluslararası Veri Bilimi yarışmalarının düzenlendiği Kaggle forumlarında insanlar genellikle hangi aracın daha iyi olduğunu soruyor. R ve Python listenin başında. Bu yazıda size Scala tabanlı alternatif bir veri analizi teknolojileri yığınından bahsedeceğiz.
By Roman zykov, Kurucu/Veri Bilimcisi @ TopDataLab
Veri analizi için doğru aracı seçmek çok önemlidir. Üzerinde kaggle.com Uluslararası Veri Bilimi yarışmalarının düzenlendiği forumlarda insanlar genellikle hangi aracın daha iyi olduğunu soruyor. R ve Python listenin başında. Bu yazıda size Scala programlama diline dayalı alternatif bir veri analizi teknolojileri yığınından bahsedeceğiz ve Kıvılcım dağıtılmış bilgi işlem platformu.
Bunu nasıl başardık? Retail Rocket'te çok büyük veri kümeleri üzerinde çok sayıda makine öğrenimi yapıyoruz. Prototip geliştirmek için bir grup IPython + Pyhs2 (Python için kovan sürücüsü) + Pandas + Sklearn kullanıyorduk. 2014 yazının sonunda, deneyler aynı sunucu parkında 3-4 kat performans artışı elde edeceğimizi gösterdiğinden, Spark'a geçmek için temel bir karar verdik.
Diğer bir avantajı ise, üretim sunucularında çalışacak modelleme ve kod için tek bir programlama dili kullanabilmemizdir. Bu bizim için çok büyük bir avantajdı, çünkü daha önce 4 dili aynı anda kullanıyorduk: Hive, Pig, Java, Python. Küçük bir mühendis ekibi için sorun.
Spark, API'ler aracılığıyla Python/Scala/Java ile çalışmayı destekler. Spark'ın yazıldığı dil olduğu için Scala'yı seçmeye karar verdik, bu da kaynak kodunu analiz edebileceğimiz ve gerekirse hataları düzeltebileceğimiz anlamına geliyor. Aynı zamanda Hadoop'un üzerinde çalıştığı JVM'dir.
Takımdaki hiç kimse o sırada Scala'yı tanımadığı için seçimin kolay olmadığını söylemeliyim.
Bir dilde iyi iletişim kurmayı öğrenmek için o dile dalmanız ve mümkün olduğunca kullanmanız gerektiği bilinen bir gerçektir. Bu yüzden modelleme ve hızlı veri analizi için Python yığınını Scala lehine terk ettik.
İlk adım, IPython dizüstü bilgisayarlar için bir yedek bulmaktı. Seçenekler şu şekildeydi:
- Zeppelin – Spark için IPython benzeri bir not defteri;
- İSpark;
- Kıvılcım Defter;
- IBM'in Spark IPython Notebook'u.
- Apaçi Tcevher
Şimdiye kadar seçim ISpark oldu çünkü basit - Scala/Spark için IPython. HighCharts ve R grafiklerini takmak nispeten kolay oldu. Ve onu Yarn kümesine bağlarken hiçbir sorun yaşamadık.
Görev
Soruyu yanıtlamaya çalışalım: Çevrimiçi mağazanızdaki ortalama satın alma tutarı (AOV), yerleşim, tarayıcı türü (mobil/Masaüstü), işletim sistemi ve tarayıcı sürümünü içeren statik müşteri parametrelerine mi bağlı? Bunu ile yapabilirsiniz Karşılıklı bilgi.
Öneri algoritmalarımız ve analizlerimiz için entropiyi çok kullanırız: klasik Shannon formülü, Kullback-Leibler ayrışması, Karşılıklı Bilgi. Hatta bu konuyla ilgili bir bildiri bile sunduk. Murphy'nin ünlü makine öğrenimi ders kitabında bu önlemlere ayrılmış küçük de olsa ayrı bir bölüm vardır.
Gerçek Perakende Roket verileri üzerinde analiz edelim. Daha önce kümemizdeki örneği csv dosyası olarak bilgisayarıma kopyaladım.
Veri
Burada yerel modda çalışan ISpark ve Spark kullanıyoruz, bu da tüm hesaplamaların yerel olarak yapıldığı ve işlemci çekirdekleri arasında dağıtıldığı anlamına geliyor. Her şey kodun yorumlarında açıklanmıştır. En önemli şey, çıktıda kodda tanımlanan Row tipi vaka sınıflarının bir koleksiyonu olan RDD'yi (Spark veri yapısı) elde etmemizdir. Bu, alanlara “.” aracılığıyla başvurmanıza olanak tanır, örneğin _.categoryId.
Kaynak: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- avantaj
- algoritmalar
- Türkiye
- Amazon
- arasında
- analiz
- Apache
- API'ler
- uygulamalar
- göre
- Bolt
- tarayıcı
- böcek
- inşa etmek
- Demet
- değişiklik
- Grafikler
- kod
- yorumlar
- Yarışmalar
- bilgisayar
- veri
- veri analizi
- veri bilimi
- veri bilimcisi
- ilgili
- derin öğrenme
- geliştirmek
- DID
- Dağıtılmış bilgi işlem
- sürücü
- Mühendislik
- Mühendisler
- vb
- Excel
- deneyim
- deneme
- keşif
- Yüz
- aile
- HIZLI
- Özellikler
- Alanlar
- Ad
- sabit
- kurucu
- iskelet
- GitHub
- Hadoop'un
- okuyun
- kovan
- Ne kadar
- Nasıl Yapılır
- HTTPS
- Kocaman
- bilgi
- interaktif
- Uluslararası
- IT
- Java
- dil
- Diller
- büyük
- ÖĞRENİN
- öğrenme
- Kütüphane
- çizgi
- Liste
- yerel
- lokal olarak
- Uzun
- makine öğrenme
- Makineler
- matematik
- Metrikleri
- Microsoft
- Modelleme
- En popüler
- dizüstü bilgisayarlar
- Online
- online mağaza
- açık
- açık kaynak
- işletme
- işletim sistemi
- Opsiyonlar
- sipariş
- Diğer
- kâğıt
- İnsanlar
- performans
- perspektif
- Fizik
- platform
- Popüler
- portföy
- üretim
- Programlama
- proje
- satın alma
- Python
- perakende
- koşmak
- koşu
- Scala
- Bilim
- bilim adamları
- set
- yerleşme
- Basit
- beden
- becerileri
- küçük
- So
- Software
- uzay
- mağaza
- hikayeler
- gönderilen
- yaz
- destekli
- Destekler
- anahtar
- sistem
- Teknolojileri
- Test yapmak
- Grafik
- zaman
- üst
- birlik
- URI
- us
- değer
- ağ
- Vikipedi
- pencereler
- İş
- X
- yıl
- sıfır