Esiste una buona libreria matematica / statistica per Scala? [chiuso]


88

Sto cercando una buona libreria open source per scala per matematica e statistica. Si spera qualcosa come Apache Math o Colt, ma implementato in Scala.

Qualcuno può indicarmi la giusta direzione?


4
Potrebbe aiutare a spiegare perché stai cercando una libreria implementata in Scala, piuttosto che una che sia semplicemente utilizzabile da Scala.
retronym

In realtà ho iniziato a usare commons.apache.org/proper/commons-math ed è facile da usare e funziona bene in Scala.
tom10271

Risposte:


147

Si CE ne sono alcuni:

Scalalab

Il progetto ScalaLab mira a fornire un ambiente di programmazione scientifica efficiente per Java Virtual Machine. Il linguaggio di scripting è basato sul linguaggio di programmazione Scala potenziato con operatori scientifici di alto livello e con un ambiente integrato che fornisce uno stile di lavoro simile a Matlab.

Il codice di scripting è estremamente veloce, simile a Java (a volte più lento, a volte più veloce) e di solito più veloce dagli equivalenti script Matlab .m!

Scalala è ora sostituito da Breeze

Una libreria di algebra lineare numerica ad alte prestazioni per Scala, con ricchi operatori simili a Matlab su vettori e matrici; una libreria di routine numeriche; supporto per la stampa.

Factorie

FACTORIE è un toolkit per la modellazione probabilistica distribuibile, implementato come libreria software in Scala. Fornisce ai suoi utenti un linguaggio sintetico per la creazione di grafici di fattori relazionali , la stima dei parametri e l'esecuzione di inferenze.

Cassovary

da twitter per l'elaborazione del grafico:

Cassovary è progettato da zero per gestire in modo efficiente grafici con miliardi di bordi. Viene fornito con alcune strutture dati di nodi e grafici comuni e algoritmi di attraversamento. Un utilizzo tipico è fare mining e analisi di grafici su larga scala.

Su Twitter, Cassovary costituisce lo strato inferiore di uno stack che utilizziamo per alimentare molte delle nostre funzionalità basate su grafici, tra cui "Chi seguire" e "Simile a". Lo utilizziamo anche per rilevanza nella ricerca su Twitter e negli algoritmi che determinano quali prodotti sponsorizzati vedranno gli utenti. Nel tempo, speriamo di portare più logica non proprietaria da alcune di queste funzionalità del prodotto in Cassovary.

Algebird

Libreria di algebra astratta da Twitter:

Il codice è destinato alla creazione di sistemi di aggregazione (tramite Scalding o Storm). È stato originariamente sviluppato come parte dell'API Matrix di Scalding, in cui le matrici avevano valori che sono elementi di Monoidi, Gruppi o Anelli. Successivamente, è stato chiaro che il codice aveva un'applicazione più ampia all'interno di Scalding e su altri progetti all'interno di Twitter.

scala_prob

! ha uno stato sperimentale!

sb_probdsl offre un semplice supporto per la programmazione probabilistica discreta usando il nuovo supporto per le continuazioni delimitate di scala.

Malakov

Una libreria Markov Chain per Scala

Le catene di Markov rappresentano processi stocastici in cui la distribuzione di probabilità del passaggio successivo dipende in modo non banale dal passaggio corrente, ma non dipende dai passaggi precedenti. Dai a questa libreria alcuni dati di addestramento e genererà nuovi dati casuali che statisticamente gli somigliano.

signal-collect

Signal / Collect è un modello di programmazione e un framework per l'elaborazione di grafici su larga scala. Il modello è sufficientemente espressivo per formulare in modo conciso molti algoritmi iterati e di flusso di dati sui grafici, consentendo al contempo al framework di parallelizzare in modo trasparente l'elaborazione.

Grizzled.math

Include stat e pacchetti di utilità. Contiene cose molto semplici e ben note, come i mezzi std ...

Probabilità Monade:

Sebbene non sia una libreria, potrebbe aiutarti molto con le probabilità di gestione.


4
Puoi guardare i confronti delle prestazioni di Scalala e Scalalab vs Python qui
om-nom-nom

15
C'è anche Saddle : Saddle è una libreria di manipolazione dei dati per Scala che fornisce strutture di dati supportate da array, indicizzate, unidimensionali e bidimensionali che sono opportunamente specializzate sulle primitive JVM per evitare il sovraccarico di boxe e unboxing.
om-nom-nom

3
om-nom-nom, dovresti alzare Saddle a una risposta. +1
metasim

1
@SimeonFitch Sto aspettando un po 'di tempo libero, per dare un'occhiata più da vicino alla sella e magari scrivere qualcosa di più dell'estratto sopra.
om-nom-nom

1
@ om-nom-nom: il tuo collegamento non funziona più.
Pravesh Jain

9

Figaro è una libreria Scala per la programmazione probabilistica. Puoi trovare maggiori informazioni su Figaro qui Figaro Reference

Figaro è disponibile per il download da Figaro Github

L'autore di questa libreria sta attualmente scrivendo un libro sulla programmazione probabilistica utilizzando Figaro. Ecco il collegamento alla pagina del libro: Libro di programmazione probabilistica


1

Guglia

Spire è una libreria numerica per Scala che vuole essere generica, veloce e precisa.

Utilizzando funzionalità come specializzazione, macro, classi di tipo e impliciti, Spire lavora duramente per sfidare la saggezza convenzionale in merito a prestazioni e compromessi di precisione. Uno degli obiettivi principali è consentire agli sviluppatori di scrivere codice numerico efficiente senza dover "integrare" particolari rappresentazioni numeriche. Nella maggior parte dei casi, le implementazioni generiche che utilizzano le classi di tipo specializzate di Spire si comportano in modo identico alle implementazioni dirette corrispondenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.