用Ruby编写的机器学习算法

15

我正在跟随Andrew Ng教授的斯坦福机器学习课程,我想用ruby开始实现这些例子。

是否有任何框架/宝石/库/现有代码可以在ruby中进行机器学习?我找到了一些相关的问题和项目,但似乎都很旧。


1
需要人工智能方面的帮助吗?请访问http://area51.stackexchange.com/proposals/93481/artificial-intelligence - 6119
3个回答

11
算法本身并不依赖于特定编程语言,您可以使用任何语言来实现它们。为了达到最高效率,您需要使用基于矩阵/向量的计算方法。
Ruby内置了一个矩阵类Matrix, 您可以使用它来实现这些算法。实现将与使用Octave的实现非常相似。您所需的一切内容都包含在1.9+的基本标准库中,因此您可以自己实现这些算法。
使用Octave是因为它提供了全面且易于使用的矩阵库。

1
谢谢您提供矩阵类的链接,我想我将不得不自己实现算法 :P - fuzzyalej
1
你是否在寻找特定的算法?我可以用 Ruby 写一些出来。 - Kassym Dorsel
@KassymDorsel你知道关于Ruby中机器学习/矩阵算法的任何资源吗?(因为你提到了它;只是好奇) - rcd
机器学习算法并不是特定于某种编程语言的。我不知道有任何 Ruby 机器学习库或资源。但你可以寻找你需要的任何机器学习算法,最坏的情况下只需将你找到的一些代码移植到 Ruby 上即可。 - Kassym Dorsel
不要访问http://www.ai4r.org/,请点击链接https://github.com/SergioFierens/ai4r/commit/7ad6fe2bded4c41cb60a731ebe3a1f6bc0f1f9db。 - kangkyu

7

请务必查看这个Gist,其中有大量信息:


此外,以下是一些值得注意的算法库(可能已经在上面的Gist中列出):

  • AI4R

    http://www.ai4r.org/ - https://github.com/SergioFierens/ai4r

    AI4R是一个Ruby算法实现的集合,涵盖了多个人工智能领域,并提供使用它们的简单实用示例。这是一个面向AI研究人员的Ruby游乐场。实现了以下内容:

    • 遗传算法(Genetic algorithms)

    • 自组织映射(Self-organized maps, SOM)

    • 神经网络:带有反向传播学习的多层感知器,Hopfield网络。

    • 自动分类器(机器学习):ID3(决策树),PRISM(J. Cendrowska, 1987),多层感知器,OneR (也称为One Attribute Rule, 1R),ZeroR,Hyperpipes,Naive Bayes,IB1(D. Aha,D. Kibler-1991)。

    • 数据聚类:K-means,Bisecting k-means,Single linkage,Complete linkage,Average linkage,Weighted Average linkage,Centroid linkage,Median linkage,Ward's method linkage,Diana(分散性分析)

  • kmeans-clusterer - Ruby中的k-means聚类:

    https://github.com/gbuesing/kmeans-clusterer

  • kmeans-clustering - 并行化k-means聚类的简单Ruby gem:

    https://github.com/vaneyckt/kmeans-clustering

  • tlearn-rb - 用于Ruby的循环神经网络库:

    https://github.com/josephwilk/tlearn-rb

  • TensorFlow Ruby wrapper - 我们写下这篇文章时,在构建TensorFlow Ruby API方面似乎有一些进展:

    https://github.com/tensorflow/tensorflow/issues/50#issuecomment-216200945

如果对你来说JRuby是一个可行的Ruby替代品:


更新: 上面的Resources for Machine Learning in Ruby gist现在已经开始作为一个存储库进行维护:https://github.com/arbox/machine-learning-with-ruby


0

试试Rumale和Numo::NArray https://github.com/yoshoku/rumale

enter image description here

Rumale(Ruby机器学习)是一个用Ruby编写的机器学习库。Rumale提供了与Python中Scikit-Learn类似的机器学习算法接口。Rumale支持线性/核支持向量机、逻辑回归、线性回归、岭回归、Lasso回归、分解机、朴素贝叶斯、决策树、AdaBoost、梯度树提升、随机森林、Extra-Trees、K最近邻分类器、K-Means、K-Medoids、高斯混合模型、DBSCAN、幂迭代聚类、多维缩放、t-SNE、主成分分析和非负矩阵分解等算法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接