Apakah ada perpustakaan matematika / statistik yang bagus untuk Scala? [Tutup]

89

Saya mencari perpustakaan sumber terbuka yang bagus untuk skala matematika dan statistik. Mudah-mudahan sesuatu seperti Apache Math atau Colt, tetapi diimplementasikan di Scala.

Adakah yang bisa mengarahkan saya ke arah yang benar?

dave
sumber
4
Mungkin membantu untuk menjelaskan mengapa Anda mencari perpustakaan yang diimplementasikan di Scala, daripada yang hanya dapat digunakan dari Scala.
retronim
Sebenarnya saya mulai menggunakan commons.apache.org/proper/commons-math dan mudah digunakan serta berfungsi dengan baik di Scala.
tom10271

Jawaban:

148

Ya, ada beberapa:

Skalab

Proyek ScalaLab bertujuan untuk menyediakan lingkungan pemrograman ilmiah yang efisien untuk Mesin Virtual Java. Bahasa skrip didasarkan pada bahasa pemrograman Scala yang ditingkatkan dengan operator ilmiah tingkat tinggi dan dengan lingkungan terintegrasi yang menyediakan gaya kerja seperti Matlab.

Kode skrip sangat cepat, dekat dengan Java (terkadang lebih lambat, terkadang lebih cepat), dan biasanya lebih cepat dari skrip Matlab .m yang setara!

Scalala sekarang digantikan oleh Breeze

Pustaka aljabar linear numerik berperforma tinggi untuk Scala, dengan operator kaya Matlab pada vektor dan matriks; perpustakaan rutinitas numerik; dukungan untuk merencanakan.

Faktori

FACTORIE adalah perangkat untuk pemodelan probabilistik yang dapat diterapkan, diimplementasikan sebagai pustaka perangkat lunak di Scala. Ini memberi penggunanya bahasa yang ringkas untuk membuat grafik faktor relasional , memperkirakan parameter, dan melakukan inferensi.

Cassovary

oleh twitter untuk pemrosesan grafik:

Cassovary dirancang dari nol untuk menangani grafik dengan miliaran tepi secara efisien. Itu datang dengan beberapa node umum dan struktur data grafik dan algoritma traversal. Penggunaan tipikal adalah untuk melakukan penambangan grafik dan analisis skala besar.

Di Twitter, Cassovary membentuk lapisan bawah tumpukan yang kami gunakan untuk memberdayakan banyak fitur berbasis grafik kami, termasuk "Untuk Diikuti" dan "Mirip dengan". Kami juga menggunakannya untuk relevansi di Pencarian Twitter dan algoritme yang menentukan mana yang akan dilihat pengguna Produk yang Dipromosikan. Seiring waktu, kami berharap untuk membawa lebih banyak logika non-kepemilikan dari beberapa fitur produk tersebut ke Cassovary.

Algebird

Perpustakaan aljabar abstrak dari twitter:

Kode ditargetkan untuk membangun sistem agregasi (melalui Scalding atau Storm). Ini pada awalnya dikembangkan sebagai bagian dari Scalding's Matrix API, di mana Matriks memiliki nilai yang merupakan elemen dari Monoid, Grup, atau Cincin. Selanjutnya, terlihat jelas bahwa kode tersebut memiliki aplikasi yang lebih luas di dalam Scalding dan proyek lain di Twitter.

scala_prob

! berstatus eksperimental!

sb_probdsl menawarkan dukungan pemrograman probabilistik diskrit sederhana menggunakan dukungan kelanjutan terbatas baru dari scala.

Malakov

Perpustakaan Markov Chain untuk Scala

Rantai Markov merepresentasikan proses stokastik di mana distribusi probabilitas dari langkah berikutnya bergantung secara non-sepele pada langkah saat ini, tetapi tidak bergantung pada langkah sebelumnya. Berikan perpustakaan ini beberapa data pelatihan dan itu akan menghasilkan data acak baru yang secara statistik mirip dengannya.

mengumpulkan sinyal

Signal / Collect adalah model pemrograman dan kerangka kerja untuk pemrosesan grafik skala besar. Model ini cukup ekspresif untuk merumuskan secara ringkas banyak algoritme aliran data dan iterasi pada grafik, sembari memungkinkan kerangka kerja untuk secara transparan memparalelkan pemrosesan.

Grizzled.math

Termasuk paket stat dan utilitas. Berisi hal-hal yang sangat mendasar dan terkenal, seperti sarana std ...

Probabilitas Monad:

Meskipun ini bukan perpustakaan, ini bisa banyak membantu Anda dalam menangani probabilitas.

om-nom-nom
sumber
4
Anda dapat melihat perbandingan kinerja Scalala dan Scalalab vs Python di sini
om-nom-nom
15
Ada juga Saddle : Saddle adalah pustaka manipulasi data untuk Scala yang menyediakan struktur data satu dan dua dimensi yang didukung oleh array yang secara bijaksana mengkhususkan diri pada primitif JVM untuk menghindari overhead tinju dan unboxing.
om-nom-nom
3
om-nom-nom, Anda harus mengangkat Saddle ke sebuah jawaban. +1
metasim
1
@SimeonFitch Saya menunggu sedikit waktu luang, untuk melihat lebih dekat pada pelana dan mungkin menulis sesuatu yang lebih dari kutipan di atas.
om-nom-nom
1
@ om-nom-nom: Tautan Anda tidak berfungsi lagi.
Pravesh Jain
9

Figaro adalah perpustakaan Scala untuk Pemrograman Probabilistik. Anda dapat menemukan informasi lebih lanjut tentang Figaro di sini Figaro Reference

Figaro tersedia untuk diunduh dari Figaro Github

Penulis perpustakaan ini sedang menulis buku tentang Pemrograman Probabilistik menggunakan Figaro. Berikut ini tautan ke halaman buku: Buku Pemrograman Probabilistik

Ravi
sumber
1

Puncak menara

Spire adalah pustaka numerik untuk Scala yang dimaksudkan untuk menjadi generik, cepat, dan tepat.

Menggunakan fitur seperti spesialisasi, makro, kelas jenis, dan implikasi, Spire bekerja keras untuk menentang kebijaksanaan konvensional seputar kinerja dan pertukaran presisi. Tujuan utamanya adalah untuk memungkinkan pengembang menulis kode numerik yang efisien tanpa harus "memanggang" representasi numerik tertentu. Dalam kebanyakan kasus, implementasi umum yang menggunakan kelas tipe khusus Spire bekerja sama dengan implementasi langsung yang sesuai.

Make42
sumber