您推荐使用哪种编程语言来构建机器学习问题的原型?

机器算法验证 r 机器学习 matlab 软件 Python
2022-03-26 00:20:59

目前在 Octave 工作,但由于文档不佳,进度非常缓慢。

哪种语言易于学习和使用,并且有据可查以解决机器学习问题?我正在寻找一个小型数据集(数千个示例)的原型,因此速度并不重要。

编辑:我正在开发一个推荐引擎。所以,我对使用正则化线性回归、神经网络、SVN 或协同过滤很感兴趣。

4个回答

如果您指定您感兴趣的特定算法,您可能会得到更好的答案。我使用 R 来处理这类事情(不过,我做的是时间序列计量经济学,而不是机器学习);您可以在此处查看现有功能:

http://cran.r-project.org/web/views/MachineLearning.html

Hastie、Tibshirani 和 Friedman 的统计学习要素中有 R 代码来实现分析:

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

R 的打包系统非常棒,它促使人们记录他们的代码,而且它是开源的,所以你可以随时查看实现。我已经有几年没有使用 Matlab 了,也没有将它用于机器学习——他们的工具箱通常都有很好的文档记录,但可能很昂贵,但用户贡献的代码将与其他任何代码一样缺乏文档记录。

在他的机器学习在线课程中,Andrew Ng建议使用 Octave/Matlab。

我建议您参加本课程的下一版:它真的很有用,您将学到很多关于 Octave 和不同机器学习算法的知识。

编辑 1:我同意其他喜欢在 R 中工作的人的观点。但是,在解决机器学习问题时,您的大部分计算将采用矩阵形式,正如 @Wayne 所指出的,Matlab 或 Octave 语言非常流行因为他们的力量。您可能想看看其他学生提出的机器学习课程练习的解决方案;你当然可以从他们身上学到一些东西:

Gkokaisel Github

Merwan Github

scikit-learn(现在)应该满足您描述sklearn几个标准(速度、用于处理数据、模型和结果的精心设计的类),包括目标应用程序(L1/L2 惩罚回归、SVM 等)。它带有丰富的文档集和大量示例另请参阅JMLR 上发表的一篇论文中的描述。

Python 中的一个替代框架是Orange,它可以通过温和的 GUI 或直接在命令行上使用。对于协同过滤,pyrsvd可能很有趣,但我从未尝试过。但是,Apache Mahout肯定可以用于协同过滤

如果您想使用开箱即用的东西,Weka 可能是一个很好的起点。无需编写任何程序。您导入数据,将其可视化并使用不同的模型。

链中的下一个将是 R。有一些相关的学习曲线 - 特别是在调整数据以适应 R 数据结构时,但是一旦你克服了这一点,你就有大量的库可以毫不费力地提供所有机器学习功能。

接下来是手动编程机器学习算法。由于您已经在使用 Octave 并正在寻找替代方案,也许您想要的不是在其他系统中手动编写代码算法,而只是使用其他人编写的库。

如果你走 R 的道路,你可能会发现 Luis Torgo 的书(Data Mining with R:Learning with Case Studies)非常有用(披露:无从属关系)。它详细描述了您可以适应您的问题的案例研究。