web-dev-qa-db-fra.com

Existe-t-il une bonne bibliothèque de mathématiques / statistiques pour Scala?

Je cherche une bonne bibliothèque open source pour scala pour les mathématiques et les statistiques. Espérons que quelque chose comme Apache Math ou Colt, mais implémenté dans Scala.

Est-ce que quelqu'un peut-il me montrer la bonne direction?

85
dave

Oui, il y en a:

Scalalab

Le projet ScalaLab vise à fournir un environnement de programmation scientifique efficace pour la machine virtuelle Java. Le langage de script est basé sur le langage de programmation Scala amélioré avec des connaissances scientifiques de haut niveau). opérateurs et avec un environnement intégré qui fournit un style de travail Matlab-like.

Le code de script est extrêmement rapide, proche de Java (parfois plus lent, parfois plus rapide), et généralement plus rapide à partir de scripts Matlab .m équivalents!

Scalala est maintenant remplacé par Breeze

Une bibliothèque d'algèbre linéaire numérique haute performance pour Scala, avec de riches opérateurs de type Matlab sur des vecteurs et des matrices; une bibliothèque de routines numériques; support pour le traçage.

Factorie

FACTORIE est une boîte à outils pour la modélisation probabiliste déployable, implémentée comme une bibliothèque de logiciels dans Scala. Il fournit à ses utilisateurs un langage succinct pour créer des graphiques de facteurs relationnels , estimer des paramètres et effectuer des inférences.

Cassovary

par Twitter pour le traitement des graphiques:

Cassovary est conçu de A à Z pour gérer efficacement des graphiques avec des milliards d'arêtes. Il est livré avec des structures de données et des algorithmes de traversée communs. Une utilisation typique consiste à effectuer une exploration et une analyse de graphiques à grande échelle.

Sur Twitter, Cassovary constitue la couche inférieure d'une pile que nous utilisons pour alimenter bon nombre de nos fonctionnalités basées sur des graphiques, y compris "Qui suivre" et "Similaire à". Nous l'utilisons également pour la pertinence dans la recherche Twitter et les algorithmes qui déterminent que les utilisateurs des produits sponsorisés verront. Au fil du temps, nous espérons apporter plus de logique non propriétaire de certaines de ces fonctionnalités de produit dans Cassovary.

Algebird

Bibliothèque d'algèbre abstraite de Twitter:

Le code est destiné à la construction de systèmes d'agrégation (via Scalding ou Storm). Il a été initialement développé dans le cadre de l'API Matrix de Scalding, où les matrices avaient des valeurs qui sont des éléments de monoïdes, de groupes ou d'anneaux. Par la suite, il était clair que le code avait une application plus large au sein de Scalding et sur d'autres projets au sein de Twitter.

scala_prob

! a un statut expérimental!

sb_probdsl offre un support de programmation probabiliste discret simple en utilisant le nouveau support de continuations délimitées de scala.

Malakov

Une bibliothèque Markov Chain pour Scala

Les chaînes de Markov représentent des processus stochastiques où la distribution de probabilité de l'étape suivante dépend non trivialement de l'étape actuelle, mais ne dépend pas des étapes précédentes. Donnez à cette bibliothèque des données d'entraînement et elle générera de nouvelles données aléatoires qui lui ressemblent statistiquement.

collecte de signal

Signal/Collect est un modèle et un cadre de programmation pour le traitement de graphiques à grande échelle. Le modèle est suffisamment expressif pour formuler de manière concise de nombreux algorithmes itérés et de flux de données sur des graphiques, tout en permettant au cadre de paralléliser le traitement de manière transparente.

Grizzled.math

Comprend des packages de statistiques et d'utilitaires. Contient des choses très basiques et bien connues, telles que des moyens std ...

Monade de probabilité:

Bien que ce ne soit pas une bibliothèque, cela pourrait vous aider beaucoup à gérer les probabilités.

143
om-nom-nom

Figaro est une bibliothèque Scala pour la programmation probabiliste. Vous pouvez trouver plus d'informations sur Figaro ici Référence Figaro

Figaro est disponible en téléchargement sur Figaro Github

L'auteur de cette bibliothèque est en train d'écrire un livre sur la programmation probabiliste utilisant Figaro. Voici le lien vers la page du livre: Livre de programmation probabiliste

9
Ravi

Spire

Spire est une bibliothèque numérique pour Scala qui est destinée à être générique, rapide et précise.

En utilisant des fonctionnalités telles que la spécialisation, les macros, les classes de type et les implicits, Spire travaille dur pour défier les idées reçues sur les compromis de performances et de précision. Un objectif majeur est de permettre aux développeurs d'écrire du code numérique efficace sans avoir à "cuire" dans des représentations numériques particulières. Dans la plupart des cas, les implémentations génériques utilisant les classes de type spécialisées de Spire fonctionnent de manière identique aux implémentations directes correspondantes.

1
Make42