Scala를위한 좋은 수학 / 통계 라이브러리가 있습니까? [닫은]


88

수학 및 통계 용 스칼라를위한 좋은 오픈 소스 라이브러리를 찾고 있습니다. Apache Math 또는 Colt와 비슷하지만 Scala로 구현되기를 바랍니다.

누구든지 올바른 방향으로 나를 가리킬 수 있습니까?


4
단순히 Scala에서 사용할 수있는 라이브러리가 아니라 Scala에서 구현 된 라이브러리를 추구하는 이유를 설명하는 데 도움이 될 수 있습니다.
retronym

사실 저는 commons.apache.org/proper/commons-math 를 사용하기 시작했으며 사용 하기 쉽고 Scala에서 잘 작동합니다.
tom10271

답변:


147

예, 몇 가지가 있습니다.

스칼라 랩

ScalaLab 프로젝트는 Java Virtual Machine을위한 효율적인 과학적 프로그래밍 환경을 제공하는 것을 목표로합니다. 스크립팅 언어는 높은 수준의 과학 연산자와 Matlab과 유사한 작업 스타일을 제공하는 통합 환경으로 강화 된 Scala 프로그래밍 언어를 기반으로합니다.

스크립팅 코드는 매우 빠르며 Java에 가깝고 (때로는 더 느리거나 더 빠름) 일반적으로 동등한 Matlab .m 스크립트에서 더 빠릅니다!

Scalala 는 이제 Breeze로 대체되었습니다.

벡터 및 행렬에 대한 풍부한 Matlab 유사 연산자가있는 Scala 용 고성능 숫자 선형 대수 라이브러리입니다. 수치 루틴 라이브러리; 플로팅 지원.

팩토리

FACTORIE는 Scala에서 소프트웨어 라이브러리로 구현 된 배포 가능한 확률 모델링을위한 툴킷입니다. 사용자에게 관계형 요인 그래프 를 만들고 매개 변수를 추정하고 추론을 수행 하기위한 간결한 언어를 제공합니다 .

Cassovary

그래프 처리를위한 트위터 :

Cassovary는 처음부터 수십억 개의 모서리가있는 그래프를 효율적으로 처리하도록 설계되었습니다. 공통 노드 및 그래프 데이터 구조와 순회 알고리즘이 함께 제공됩니다. 일반적인 용도는 대규모 그래프 마이닝 및 분석을 수행하는 것입니다.

Twitter에서 Cassovary는 "Who to Follow"및 "Similar to"를 포함한 많은 그래프 기반 기능을 지원하는 데 사용하는 스택의 맨 아래 계층을 형성합니다. 또한 트위터 검색의 관련성과 사용자가 볼 프로모션 제품을 결정하는 알고리즘을 위해이 정보를 사용합니다. 시간이 지남에 따라 이러한 제품 기능 중 일부에서 더 많은 비 독점 논리를 Cassovary로 가져올 수 있기를 바랍니다.

알지 버드

Twitter의 추상 대수 라이브러리 :

코드는 건물 집계 시스템을 대상으로합니다 (Scalding 또는 Storm을 통해). 원래는 Scalding의 Matrix API의 일부로 개발되었으며, 여기에서 행렬은 Monoids, Groups 또는 Rings의 요소 인 값을 가졌습니다. 그 결과 코드가 Scalding과 Twitter 내의 다른 프로젝트에서 더 광범위하게 적용된다는 것이 분명해졌습니다.

scala_prob

! 실험 상태입니다!

sb_probdsl은 scala의 새로운 구분 된 연속 지원을 사용하여 간단한 이산 확률 프로그래밍 지원을 제공합니다.

말라 코프

Scala 용 Markov Chain 라이브러리

마르코프 체인은 다음 단계의 확률 분포가 현재 단계에 크게 의존하지 않고 이전 단계에 의존하지 않는 확률 적 프로세스를 나타냅니다. 이 라이브러리에 훈련 데이터를 제공하면 통계적으로 유사한 새로운 무작위 데이터가 생성됩니다.

신호 수집

Signal / Collect는 대규모 그래프 처리를위한 프로그래밍 모델 및 프레임 워크입니다. 이 모델은 프레임 워크가 처리를 투명하게 병렬화 할 수 있도록 허용하면서 그래프에서 많은 반복 및 데이터 흐름 알고리즘을 간결하게 공식화 할 수있을만큼 충분히 표현 적입니다.

그리 즐드 .math

통계 및 유틸리티 패키지를 포함합니다. 표준 수단과 같은 매우 기본적이고 잘 알려진 것들을 포함합니다.

확률 모나드 :

라이브러리는 아니지만 확률을 다루는 데 많은 도움이 될 수 있습니다.



15
Saddle 도 있습니다 . Saddle은 복싱과 언 박싱의 오버 헤드를 피하기 위해 JVM 프리미티브에 신중하게 특화된 배열 지원, 인덱스, 1 차원 및 2 차원 데이터 구조를 제공하는 Scala 용 데이터 조작 라이브러리입니다.
om-nom-nom 2013

3
om-nom-nom, 당신은 Saddle을 올려야합니다. +1
metasim 2013-06-19

1
@SimeonFitch 나는 안장을 자세히 살펴보고 위의 발췌보다 더 많은 것을 쓰기 위해 약간의 자유 시간을 기다리고 있습니다.
om-nom-nom 2013 년

1
@ om-nom-nom : 링크가 더 이상 작동하지 않습니다.
Pravesh Jain 2014 년

9

Figaro는 확률 적 프로그래밍을위한 Scala 라이브러리입니다. Figaro에 대한 자세한 정보는 여기에서 찾을 수 있습니다. Figaro Reference

Figaro는 Figaro Github 에서 다운로드 할 수 있습니다.

이 도서관의 저자는 현재 Figaro를 사용한 확률 적 프로그래밍에 관한 책을 쓰고 있습니다. 다음은 책 페이지에 대한 링크입니다. Probabilistic Programming Book


1

첨탑

Spire는 빠르고 정확하며 포괄적 인 Scala 용 숫자 라이브러리입니다.

전문화, 매크로, 유형 클래스 및 암시와 같은 기능을 사용하여 Spire는 성능 및 정밀도 절충에 대한 기존의 통념을 무시하기 위해 열심히 노력합니다. 주요 목표는 개발자가 특정 숫자 표현을 "베이킹"하지 않고도 효율적인 숫자 코드를 작성할 수 있도록하는 것입니다. 대부분의 경우 Spire의 특수 유형 클래스를 사용하는 일반 구현은 해당 직접 구현과 동일하게 수행됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.