Scala 有没有好的数学/统计库?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8760925/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-22 03:47:37  来源:igfitidea点击:

Is there a good math/stats library for Scala?

scalamathstatistics

提问by dave

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.

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

Can anyone point me in the right direction?

任何人都可以指出我正确的方向吗?

回答by om-nom-nom

Yes, there are some:

是的有一些:

Scalalab

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!

ScalaLab 项目旨在为 Java 虚拟机提供高效的科学编程环境。脚本语言基于 Scala 编程语言,增强了高级科学运算符和集成环境,提供了类似 Matlab 的工作风格。

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

Scalalais now superseded by Breeze

Scalala现在被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.

Scala 的高性能数值线性代数库,在向量和矩阵上具有丰富的类似 Matlab 的运算符;数值程序库;支持绘图。

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.

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

Cassovary

肉豆蔻

by twitter for graph processing:

通过 twitter 进行图形处理:

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.

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

在 Twitter,Cassovary 构成了一个堆栈的底层,我们用它来支持我们的许多基于图的功能,包括“关注谁”和“类似于”。我们还将它用于 Twitter 搜索的相关性以及确定用户将看到哪些促销产品的算法。随着时间的推移,我们希望将这些产品功能中的更多非专有逻辑带入 Cassovary。

Algebird

代鸟

Abstract algebra library from twitter:

来自 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.

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

scala_prob

scala_prob

! has experimental status !

!有实验状态!

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

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

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.

Scala 的马尔可夫链库

马尔可夫链表示随机过程,其中下一步的概率分布非常依赖于当前步骤,但不依赖于之前的步骤。给这个库一些训练数据,它会生成新的随机数据,在统计上与它相似。

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.

Signal/Collect 是一种用于大规模图形处理的编程模型和框架。该模型具有足够的表现力,可以在图上简明地制定许多迭代和数据流算法,同时允许框架透明地并行处理。

Grizzled.math

Grizzled.math

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

包括 stat 和实用程序包。包含非常基本和众所周知的东西,例如手段标准...

Probability Monad:

概率单子:

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

虽然它不是图书馆,但它可以帮助你处理概率问题。

回答by Ravi

Figaro is a Scala library for Probabilistic Programming. You could find more information about Figaro here Figaro Reference

Figaro 是一个用于概率编程的 Scala 库。您可以在此处找到有关 Figaro 的更多信息Figaro Reference

Figaro is available for download from Figaro Github

Figaro 可从Figaro Github下载

The author of this library is currently writing a book on Probabilistic Programming using Figaro. Here is the link to the book page: Probabilistic Programming Book

这个库的作者目前正在写一本关于使用 Figaro 进行概率编程的书。这是书页的链接:Probabilistic Programming Book

回答by Make42

Spire

尖塔

Spire is a numeric library for Scala which is intended to be generic, fast, and precise.

Using features such as specialization, macros, type classes, and implicits, Spire works hard to defy conventional wisdom around performance and precision trade-offs. A major goal is to allow developers to write efficient numeric code without having to "bake in" particular numeric representations. In most cases, generic implementations using Spire's specialized type classes perform identically to corresponding direct implementations.

Spire 是 Scala 的数字库,旨在实现通用、快速和精确。

Spire 使用专业化、宏、类型类和隐式等特性,努力挑战围绕性能和精度权衡的传统智慧。一个主要目标是允许开发人员编写高效的数字代码,而无需“烘焙”特定的数字表示。在大多数情况下,使用 Spire 的专用类型类的泛型实现与相应的直接实现的性能相同。