Есть ли хорошая библиотека математики/статистики для Scala?

Я ищу хорошую библиотеку с открытым исходным кодом для scala для математики и статистики. Надеюсь, что-то вроде Apache Math или Colt, но реализовано в Scala.

Может ли кто-нибудь указать мне в правильном направлении?

Ответ 1

Да, есть некоторые:

Scalalab

Проект ScalaLab направлен на обеспечение эффективной научной среды программирования для виртуальной машины Java. Язык сценариев основан на языке программирования Scala, расширенном с помощью высокоуровневых научных операторов, и с интегрированной средой, которая обеспечивает стиль работы, подобный Matlab.

Код сценария очень быстрый, близкий к Java (иногда медленнее, иногда быстрее) и обычно быстрее из эквивалентных скриптов Matlab.m!

Scalala теперь заменена Бризом

Высокопроизводительная библиотека числовых линейных алгебр для Scala с богатыми Matlab-подобными операторами на векторах и матрицах; библиотека численных подпрограмм; поддержка заговора.

Factorie

FACTORIE - это инструментарий для развертываемого вероятностного моделирования, реализованный как библиотека программного обеспечения в Scala. Он предоставляет своим пользователям краткий язык для создания графов реляционных факторов, оценки параметров и выполнения вывода.

Cassovary

по твиттеру для обработки графа:

Cassovary разработан с нуля, чтобы эффективно обрабатывать графики с миллиардами краев. Он поставляется с некоторыми общими структурами узлов и графов и алгоритмами обхода. Типичное использование - это крупномасштабный анализ и анализ графов.

В Twitter Cassovary формирует нижний уровень стека, который мы используем для использования многих наших графических функций, включая "Кто следовать" и "Подобно". Мы также используем его для релевантности в Twitter Search и алгоритмы, определяющие, какие пользователи Promoted Products будут видеть. Со временем мы надеемся привнести в Cassovary больше непартийной логики от некоторых из этих функций продукта.

Algebird

Библиотека абстрактной алгебры из twitter:

Код нацелен на создание агрегационных систем (через Scalding или Storm). Он был первоначально разработан как часть API-матрицы Scalding Matrix, где у матриц были значения, которые являются элементами моноидов, групп или колец. Впоследствии было ясно, что код имеет более широкое применение в Scalding и других проектах в Twitter.

scala_prob

! имеет экспериментальный статус!

sb_probdsl предлагает простую дискретную поддержку вероятностного программирования с использованием поддержки продолжения продолжения scala.

Малаков

Библиотека Марковской сети для Scala

Цепи Маркова представляют собой случайные процессы, где распределение вероятности следующего шага на текущем шаге не тривиально, но не зависит от предыдущих шагов. Дайте этой библиотеке некоторые данные обучения, и она будет генерировать новые случайные данные, которые статистически напоминают ее.

сигнал-Collect

Signal/Collect - это модель программирования и структура для крупномасштабной обработки графа. Модель достаточно выразительна, чтобы кратко сформулировать множество алгоритмов итерации потока данных на графиках, позволяя структуре прозрачно распараллеливать обработку.

Grizzled.math

Включает пакеты статистики и утилиты. Содержит очень простые и хорошо известные вещи, такие как средства std...

Вероятность Монады:

Хотя это не библиотека, это может помочь вам справиться с вероятностями.

Ответ 2

Figaro - библиотека Scala для вероятностного программирования. Вы можете найти более подробную информацию о Figaro здесь Figaro Reference

Фигаро доступен для скачивания Фигаро Гитуб

Автор этой библиотеки в настоящее время пишет книгу о вероятностном программировании с использованием Фигаро. Вот ссылка на страницу книги: Вероятностная книга программирования

Ответ 3

Spire

Spire - это числовая библиотека для Scala, которая должна быть общей, быстро и точно.

Использование таких функций, как специализация, макросы, классы типов и implicits, Spire упорно трудится, чтобы бросить вызов традиционной мудрости вокруг производительность и точность компромиссов. Основная цель - разрешить разработчикам писать эффективный цифровой код без необходимости "запекать", конкретные числовые представления. В большинстве случаев общий реализации, использующие специализированные классы Spire идентично соответствующим прямым реализациям.