Scala Kullanan Veri Bilimi Araçları


15

Spark'ın Scala ile tamamen entegre olduğunu biliyorum. Kullanım durumu özellikle büyük veri kümeleri içindir. Başka hangi araçların iyi Scala desteği var? Scala daha büyük veri setleri için en uygun mudur? Yoksa daha küçük veri kümeleri için de uygun mu?


2
Ayrıca FACTORIE gibi Makine Öğrenimi araç takımları hakkında bilmek ister misiniz?
Erik Kaplun

Sorumla alakalı geliyor, daha fazlasını paylaşmaktan çekinmeyin.
sheldonkreger

Yanıtlar:


11

Re: veri boyutu

Kısa cevap

Scala hem küçük hem de büyük veriler için çalışır, ancak oluşturulması ve geliştirilmesi ölçeklenebilir bir şeye ihtiyaç duyulmasıyla motive edilir. Scala, “Ölçeklenebilir Dil” in kısaltmasıdır .

Uzun cevap

Scala jvm üzerinde çalışan işlevsel bir programlama dilidir . Bunun 'işlevsel' kısmı, programlama hakkında farklı düşünmenizi sağlayan dilde temel bir farktır. Bu şekilde düşünmeyi seviyorsanız, küçük verilerle hızlı bir şekilde çalışmanıza izin verir. İster beğenin ister beğenmeyin, fonksiyonel dillerin ölçeklendirilmesi temelde daha kolaydır. Jvm parçası da önemlidir, çünkü jvm temelde her yerdedir ve bu nedenle Scala kodu temelde her yerde çalışabilir. (Not: jvm'de yazılmış birçok dil ve diğer işlevsel programlama dilleri vardır ve Scala'nın ötesindeki diller her iki listede de görünür.)

Bu konuşma Scala'nın ardındaki motivasyon hakkında iyi bir genel bakış sunuyor.

Re: iyi Scala desteğine sahip diğer araçlar:

Bahsettiğiniz gibi, Spark (yinelenebilir algoritmalarda yinelemeli algoritmalardan daha iyi dağıtılabilir toplu işlem) büyüktür. Kıvılcım ile onun kütüphanelerini geliyor Mllib makine öğrenmesi ve için GRAPHX grafikler için. Erik Allik ve Tris Nefzger'in belirttiği gibi, Akka ve Factorie vardır. Ayrıca Play var .

Genellikle, kazdığınız belirli bir kullanım durumu olup olmadığını söyleyemem (öyleyse, bunu sorunuzun bir parçası haline getirin) veya sadece büyük veri araçlarının bir anketini yapmak ve Scala'yı biraz bilmek ve istemek orada başlamak için.



4

Scala'nın yaratıcısı Martin Odersky'nin sunumlarını dinlemekten, özellikle nesne yönelimi ve kıvılcım sözdizimi ile bağlantılı olarak fonksiyonel programlama yapılarından yararlanarak yüksek düzeyde ölçeklenebilir sistemler oluşturmak için çok uygundur. Küçük sistemlerin geliştirilmesi ve hızlı prototipleme için de yararlıdır, çünkü diğer dillerden daha az kod satırı gerektirir ve hızlı geri bildirim için etkileşimli bir moda sahiptir. Dikkate değer bir Scala çerçevesi, eşzamanlı hesaplama aktör modelini kullanan Akka'dır. Odersky'nin sunumlarının çoğu YouTube'da ve wiki.scala-lang.org'da Scala ile uygulanan araçların bir listesi var.

Örtük bir nokta, Scala'da yazılan araçların ve çerçevelerin doğal olarak Scala entegrasyonuna ve genellikle bir Scala API'sine sahip olmasıdır. Daha sonra, Scala zaten entegre olduğu ve aslında kritik olarak Java'ya bağlı olduğu için Java ile başlayan diğer dilleri desteklemek için başka API'ler eklenebilir. Scala'da bir araç veya çerçeve yazılmamışsa, Scala için herhangi bir destek sunması olası değildir. Bu yüzden sorunuza cevap olarak Scala ve Spark'da yazılmış araçlara ve çerçevelere dikkat çektim. Bununla birlikte, Scala'nın şu anda pazarda küçük bir payı var, ancak benimseme oranı büyüyor ve Spark'ın yüksek büyüme oranı bunu artıracak. Scala'yı kullanmamın nedeni, Spark'ın Scala için API'sinin Java ve Python API'lerinden daha zengin olmasıdır.

Scala'yı tercih etmemin temel nedenleri, Java'dan çok daha etkileyici olmasıdır, çünkü Java'dan çok daha az kodla karmaşık ve doğru programların geliştirilmesini sağlayan nesne odaklı modülerliği korurken işlevlerin nesne ve değerler olarak kullanılmasına izin verir ve bunları kolaylaştırır. Yaygın kullanım, netlik ve mükemmel dokümantasyon nedeniyle tercih etmiştim.


1
Bu genel olarak Scala hakkında harika bir bilgi, ancak Scala entegrasyonu olan belirli veri bilimi araçları veya çerçeveleri ve Scala'nın neden bu araçların kullanımı için iyi bir dil olduğu hakkında bilgi arıyorum.
sheldonkreger

0

Scala hem büyük hem de küçük veri bilimi uygulamaları için uygundur. Apache Spark ile iyi entegre olan bir makine öğrenimi kütüphanesi denemek istiyorsanız DynaML'i düşünün . Sunulan model sayısı açısından konuşmak için hala emekleme aşamasındadır, ancak geniş ve esnek bir makine öğrenme API'sı tarafından telafi edilmektedir.

Bazı örnek kullanım örneklerine göz atmak için (daha çok nereden geldiği)

  1. Sistem Tanımlaması - Abott Enerji Santrali

Feragatname: Ben DynaML'in yazarıyım


Bu sizin projenizse, lütfen bağlılığınızı not edin.
Sean Owen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.