Scala有一个很好的数学/统计库吗?

时间:2012-01-06 16:21:38

标签: scala math statistics

我正在为数学和统计学的scala寻找一个好的开源库。希望像Apache Math或Colt这样的东西,但在Scala中实现。

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:143)

是的,有一些:

Scalalab

  

ScalaLab项目旨在提供有效的科学   Java虚拟机的编程环境。脚本   语言是基于Scala编程语言增强的高   一流的科学操作者和一个综合的环境   提供类似Matlab的工作方式。

     

脚本代码   非常快,接近Java(有时更慢,有时更快),   并且通常比同等的Matlab .m脚本更快!

Scalala 现已被Breeze

取代
  

Scala的高性能数字线性代数库,具有丰富的功能   矢量和矩阵上类似Matlab的算子;一个数值库   程序;支持绘图。

Factorie

  

FACTORIE是可部署概率建模的工具包,   在Scala中作为软件库实现。它为用户提供   用于创建关系因子图的简洁语言,估算   参数和执行推理。

Cassovary

通过twitter进行图表处理:

  

Cassovary从头开始设计,可高效处理图形   有数十亿的边缘。它附带了一些常见的节点和图形数据   结构和遍历算法。一个典型的用法是做   大规模图挖掘和分析。

     

在Twitter上,Cassovary构成了我们习惯的堆栈的底层   为我们的许多基于图形的功能提供支持,包括“跟随谁”和   “类似于。”我们也将它用于Twitter搜索和   确定哪些推广产品用户将看到的算法。过度   时间,我们希望从其中一些带来更多的非专有逻辑   产品功能进入Cassovary。

Algebird

来自twitter的抽象代数库:

  

代码的目标是构建聚合系统(通过Scalding或   风暴)。它最初是作为Scalding的Matrix API的一部分开发的,   矩阵的值是Monoids,Group或的元素   戒指。随后,很明显代码范围更广   在Scalding和Twitter内的其他项目中应用。

scala_prob

!有实验状态!

  

sb_probdsl提供简单的离散概率编程支持   使用scala的新分隔延续支持。

Malakov

  

Scala的马尔可夫链库

     

马尔可夫链代表概率的随机过程   下一步的分配取决于当前的非平凡   步骤,但不依赖于以前的步骤。给这个库一些   训练数据,它将生成统计上的新随机数据   类似于它。

signal-collect

  

Signal / Collect是一种大规模的编程模型和框架   图处理。该模型足以表达简洁   在图上制定了许多迭代和数据流算法   允许框架透明地并行化处理。

Grizzled.math

  

包括统计和实用程序包。包含非常基本和众所周知的   事情,比如手段...... ...

Probability Monad:

  

虽然它不是图书馆,但它可以帮助你解决很多问题   概率。

答案 1 :(得分:9)

Figaro是一个用于概率编程的Scala库。您可以在Figaro Reference

找到有关费加罗的更多信息

Figaro可从Figaro Github

下载

该图书馆的作者目前正在使用费加罗撰写一本关于概率编程的书。以下是图书页面的链接:Probabilistic Programming Book

答案 2 :(得分:1)

Spire

  

Spire是Scala的数字库,旨在通用,   快速,准确。

     

使用特殊化,宏,类型类等功能   暗示,Spire努力克服传统智慧   性能和精度权衡。一个主要目标是允许   开发人员编写高效的数字代码而无需"烘烤"   特定的数字表示。在大多数情况下,通用   使用Spire专用类型类的实现   与相应的直接实现相同。