Scala 有很好的数学/统计库吗? [英] Is there a good math/stats library for Scala?

查看:22
本文介绍了Scala 有很好的数学/统计库吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为用于数学和统计的 Scala 寻找一个好的开源库.希望类似于 Apache Math 或 Colt,但在 Scala 中实现.

谁能指出我正确的方向?

解决方案

是的,有一些:

Scalalab

<块引用>

ScalaLab 项目旨在提供一个高效的科学Java 虚拟机的编程环境.脚本编写语言基于 Scala 编程语言,增强了高级科学操作员和集成环境提供类似 Matlab 的工作方式.

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

Scalala 现在被 微风

<块引用>

Scala 的高性能数值线性代数库,具有丰富的向量和矩阵上的类似 Matlab 的运算符;数字图书馆例行公事;支持绘图.

工厂

<块引用>

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

Cassovary

通过 twitter 进行图形处理:

<块引用>

Cassovary 的设计初衷是为了高效处理图形有数十亿条边.它带有一些常见的节点和图形数据结构和遍历算法.一个典型的用法是做大规模图挖掘和分析.

在 Twitter 上,Cassovary 形成了堆栈的底层,我们用来为我们的许多基于图形的功能提供支持,包括关注谁";和如同."我们还将其用于 Twitter 搜索和确定用户将看到哪些促销产品的算法.超过时间,我们希望从其中一些带来更多的非专有逻辑将产品功能导入 Cassovary.

Algebird

来自 twitter 的抽象代数库:

<块引用>

代码旨在构建聚合系统(通过 Scalding 或风暴).它最初是作为 Scalding 的 Matrix API 的一部分开发的,其中矩阵的值是 Monoids、Groups 或戒指.随后,很明显,该代码具有更广泛的在 Scalding 和 Twitter 中的其他项目中应用.

scala_prob

!有实验状态!

<块引用>

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

马拉科夫

<块引用>

Scala 的马尔可夫链库

马尔可夫链表示随机过程,其中概率下一步的分布非常依赖于当前步骤,但不依赖于前面的步骤.给这个图书馆一些训练数据,它将生成新的随机数据,统计上很像.

信号收集

<块引用>

Signal/Collect 是一个用于大规模的编程模型和框架图处理.该模型的表现力足以简洁在图上制定许多迭代和数据流算法,而允许框架透明地并行处理.

Grizzled.math

<块引用>

包括 stat 和实用程序包.包含非常基础和众所周知的事物,例如意味着标准...

概率单子:

<块引用>

虽然它不是图书馆,但它可以帮助你处理很多事情概率.

I'm looking for a good open source library for scala for math and statistics. Hopefully something like Apache Math or Colt, but implemented in Scala.

Can anyone point me in the right direction?

解决方案

Yes, there are some:

Scalalab

The ScalaLab project aims to provide an efficient scientific programming environment for the Java Virtual Machine. The scripting language is based on the Scala programming language enhanced with high level scientific operators and with an integrated environment that provides a Matlab-like working style.

The scripting code is extremely fast, close to Java (sometimes slower, sometimes faster), and usually faster from equivalent Matlab .m scripts!

Scalala is now superseded by Breeze

A high performance numeric linear algebra library for Scala, with rich Matlab-like operators on vectors and matrices; a library of numerical routines; support for plotting.

Factorie

FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala. It provides its users with a succinct language for creating relational factor graphs, estimating parameters and performing inference.

Cassovary

by twitter for graph processing:

Cassovary is designed from the ground up to efficiently handle graphs with billions of edges. It comes with some common node and graph data structures and traversal algorithms. A typical usage is to do large-scale graph mining and analysis.

At Twitter, Cassovary forms the bottom layer of a stack that we use to power many of our graph-based features, including "Who to Follow" and "Similar to." We also use it for relevance in Twitter Search and the algorithms that determine which Promoted Products users will see. Over time, we hope to bring more non-proprietary logic from some of those product features into Cassovary.

Algebird

Abstract algebra library from twitter:

Code is targeted at building aggregation systems (via Scalding or Storm). It was originally developed as part of Scalding's Matrix API, where Matrices had values which are elements of Monoids, Groups, or Rings. Subsequently, it was clear that the code had broader application within Scalding and on other projects within Twitter.

scala_prob

! has experimental status !

sb_probdsl offers simple discrete probabilistic programming support using scala's new delimited continuations support.

Malakov

A Markov Chain library for Scala

Markov chains represent stochastic processes where the probability distribution of the next step depends non-trivially on the current step, but does not depend on previous steps. Give this library some training data and it will generate new random data that statistically resembles it.

signal-collect

Signal/Collect is a programming model and framework for large-scale graph processing. The model is expressive enough to concisely formulate many iterated and data-flow algorithms on graphs, while allowing the framework to transparently parallelize the processing.

Grizzled.math

Includes stat and utility packages. Contains very basic and well known things, such as means std...

Probability Monad:

While it is not library it could help you a lot with dealing probabilities.

这篇关于Scala 有很好的数学/统计库吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆