Existe uma boa biblioteca de matemática / estatísticas para Scala? [fechadas]

87

Estou procurando uma boa biblioteca de código aberto para scala para matemática e estatística. Esperançosamente, algo como Apache Math ou Colt, mas implementado em Scala.

Alguém pode me apontar na direção certa?

Dave
fonte
4
Isso pode ajudar a explicar por que você está atrás de uma biblioteca implementada em Scala, em vez de uma que seja meramente utilizável em Scala.
retrônimo de
Na verdade, comecei a usar commons.apache.org/proper/commons-math e é fácil de usar e funciona bem no Scala.
tom10271

Respostas:

145

Sim, existem alguns:

Scalalab

O projeto ScalaLab visa fornecer um ambiente de programação científica eficiente para a máquina virtual Java. A linguagem de script é baseada na linguagem de programação Scala aprimorada com operadores científicos de alto nível e com um ambiente integrado que fornece um estilo de trabalho semelhante ao Matlab.

O código de script é extremamente rápido, próximo ao Java (às vezes mais lento, às vezes mais rápido) e geralmente mais rápido de scripts Matlab .m equivalentes!

Scalala foi agora substituído por Breeze

Uma biblioteca de álgebra linear numérica de alto desempenho para Scala, com ricos operadores do tipo Matlab em vetores e matrizes; uma biblioteca de rotinas numéricas; suporte para plotagem.

Fabrica

FACTORIE é um kit de ferramentas para modelagem probabilística implantável, implementado como uma biblioteca de software em Scala. Oferece aos seus usuários uma linguagem sucinta para a criação de gráficos de fatores relacionais , estimativa de parâmetros e realização de inferências.

Cassovary

pelo Twitter para processamento de gráfico:

O Cassovary foi projetado desde o início para lidar de forma eficiente com gráficos com bilhões de arestas. Ele vem com algumas estruturas de dados comuns de nós e gráficos e algoritmos de passagem. Um uso típico é fazer mineração e análise de gráficos em grande escala.

No Twitter, o Cassovary forma a camada inferior de uma pilha que usamos para potencializar muitos de nossos recursos baseados em gráficos, incluindo "Quem Seguir" e "Semelhante a". Também o usamos para relevância na Pesquisa do Twitter e os algoritmos que determinam quais produtos promovidos os usuários verão. Com o tempo, esperamos trazer mais lógica não proprietária de alguns desses recursos do produto para o Cassovary.

Algebird

Biblioteca de álgebra abstrata do twitter:

O código é voltado para a construção de sistemas de agregação (via Scalding ou Storm). Ele foi originalmente desenvolvido como parte da API Matrix de Scalding, onde Matrices tinham valores que são elementos de Monoids, Groups ou Rings. Posteriormente, ficou claro que o código tinha uma aplicação mais ampla no Scalding e em outros projetos no Twitter.

scala_prob

! tem status experimental!

sb_probdsl oferece suporte de programação probabilística discreta simples usando o novo suporte de continuações delimitadas do scala.

Malakov

Uma biblioteca da Cadeia de Markov para Scala

Cadeias de Markov representam processos estocásticos onde a distribuição de probabilidade da próxima etapa depende não trivialmente da etapa atual, mas não depende das etapas anteriores. Forneça a esta biblioteca alguns dados de treinamento e ela gerará novos dados aleatórios que se assemelham estatisticamente a eles.

coleta de sinal

Signal / Collect é um modelo de programação e estrutura para processamento de gráficos em larga escala. O modelo é expressivo o suficiente para formular concisamente muitos algoritmos iterados e de fluxo de dados em gráficos, enquanto permite que o framework paralelize o processamento de forma transparente.

Grizzled.math

Inclui pacotes de estatísticas e utilitários. Contém coisas muito básicas e bem conhecidas, como meios std ...

Mônada de probabilidade:

Embora não seja uma biblioteca, pode ajudá-lo muito a lidar com as probabilidades.

om-nom-nom
fonte
4
Você pode ver as comparações de desempenho de Scalala e Scalalab vs Python aqui
om-nom-nom
13
Há também Saddle : Saddle é uma biblioteca de manipulação de dados para Scala que fornece estruturas de dados baseadas em array, indexadas, uni e bidimensionais que são judiciosamente especializadas em primitivos JVM para evitar a sobrecarga de boxing e unboxing.
om-nom-nom
3
om-nom-nom, você deve levantar Saddle para uma resposta. +1
metasim
1
@SimeonFitch Estou esperando um pouco de tempo livre para dar uma olhada mais de perto na sela e talvez escrever algo mais do que o trecho acima.
om-nom-nom de
1
@ om-nom-nom: Seu link não funciona mais.
Pravesh Jain
9

Figaro é uma biblioteca Scala para programação probabilística. Você pode encontrar mais informações sobre o Figaro aqui Referência do Figaro

Figaro está disponível para download no Figaro Github

O autor desta biblioteca está atualmente escrevendo um livro sobre Programação Probabilística usando o Figaro. Aqui está o link para a página do livro: Livro de programação probabilística

Ravi
fonte
1

Spire

Spire é uma biblioteca numérica para Scala que se destina a ser genérica, rápida e precisa.

Usando recursos como especialização, macros, classes de tipo e implícitos, o Spire trabalha duro para desafiar a sabedoria convencional sobre desempenho e compensações de precisão. Um dos principais objetivos é permitir que os desenvolvedores escrevam códigos numéricos eficientes sem ter que "preparar" representações numéricas específicas. Na maioria dos casos, as implementações genéricas usando as classes de tipo especializadas do Spire têm desempenho idêntico às implementações diretas correspondentes.

Make42
fonte