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

88

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

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

Дэйв
источник
4
Это может помочь объяснить, почему вам нужна библиотека, реализованная на Scala, а не та, которую можно просто использовать из Scala.
retronym
На самом деле я начал использовать commons.apache.org/proper/commons-math, и он прост в использовании и отлично работает в Scala.
tom10271 01

Ответы:

147

Да, есть:

Скалалаб

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

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

Scalala теперь заменен Breeze

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

Фабрика

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

Кассовары

от twitter для обработки графиков:

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

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

Algebird

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

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

scala_prob

! имеет статус экспериментального!

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

Малаков

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

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

сбор сигналов

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

Grizzled.math

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

Монада вероятностей:

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

ом Ном ном
источник
4
Вы можете посмотреть сравнение производительности Scalala и Scalalab по сравнению с Python здесь
om-nom-nom
15
Существует также Saddle : Saddle - это библиотека управления данными для Scala, которая предоставляет индексированные, одномерные и двумерные структуры данных с поддержкой массивов, которые разумно специализированы на примитивах JVM, чтобы избежать накладных расходов на упаковку и распаковку.
om-nom-nom
3
om-nom-nom, вы должны поднять Седло до ответа. +1
metasim
1
@SimeonFitch Я жду немного свободного времени, чтобы поближе взглянуть на седло и, возможно, написать что-то большее, чем приведенный выше отрывок.
om-nom-nom
1
@ om-nom-nom: Ваша ссылка больше не работает.
Pravesh Jain 08
9

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

Фигаро доступен для загрузки с Фигаро Github

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

Рави
источник
1

Шпиль

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

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

Марка 42
источник