关于机器学习,R和MATLAB有什么优缺点?

10

我开始学习机器学习,发现这两个常常被用在这个领域。它们看起来非常相似,那么如何决定使用哪一个?


紧密相关:https://dev59.com/QnI-5IYBdhLWcg3wqqXh。你可能想在问题标题中加入“机器学习”? - Shane
完成了,谢谢建议。我会查看那个问题的。 - hungry
3个回答

8
我认为R更好的原因有很多。我用Matlab已经有好几年了,现在转向使用R,我希望一开始就学习R。有一个博客Abandon Matlab列出了许多使用Matlab时非常烦人的原因。以下是我认为R更加高效的三个主要原因:
  • Matlab函数在不同工具箱之间调用语法不一致,例如:如果我想在模型中更改分类器,在R中我通常只需要更改函数名称并保持调用和数据不变即可。但在Matlab中,这通常涉及到重新格式化数据和完全不同的函数调用,我必须从文档中查找。

  • R拥有更好的数据结构,我认为Matlab中唯一可行的结构是基本数组,而且使用除数字变量以外的任何其他变量都很麻烦,此外,您无法按名称调用列,而必须使用变量的索引(嗯,是第33列还是第34列,我要绘制...)。你无法击败R中的data.frame!

  • R拥有许多有用的机器学习包ML

  • Matlab没有函数的命名参数

最后,如果您经常使用矩阵并且发现Matlab语法更好,请查看带有Numpy和Scipy的Python。Python也有一些很好的机器学习库,例如PyBrain。我不会在这里比较R和Python,因为那是完全不同的问题 :)


我说这话是因为我用Matlab已经有好几年了,现在转换到了R,我希望我一开始就学习R。 - sjas

5
“哪个更好”的问题通常严重依赖于上下文。这种情况也不例外。
你想通过机器学习实现什么目标?如果你只是为了理解机器学习而学习它,那么最好选择能够得到最多支持的语言。你的朋友非常熟悉R?那就选择R。无论如何,这两种语言都允许足够简单的机器学习实验,让你能够获得一般性的想法。
如果你想进入机器学习以完成更具体的任务,那么就会有所不同。你的机器学习任务涉及图像吗?选择Matlab,因为你可能还需要使用图像处理。你想深入了解机器学习背后的理论,并使用高级统计方法来编写新算法吗?如果你想使用其丰富的函数,请选择R;如果Matlab的编程环境更适合你,则选择Matlab。

5
此外,不要忘记高昂的Matlab许可价格有时是需要考虑的因素之一。 - nico
@nico:根据我的经验,Matlab通常也是“免费”的,也就是说有其他人为其付费。当然,如果价格起到作用的话,R会胜出。 - Jonas
3
@Jonas: 但是,总得有人付费! :) 我工作的实验室花了8000欧元购买Matlab/各种工具包许可证,每年还需花费大约800欧元进行续订。总体来说这不算是非常大的开销,但免费的东西无可比拟 :D :D :D - nico
是的,但这里上下文已经明确了。在机器学习的图像处理中,通常归结为对原始像素图的用户定义操作,因此MATLAB在此没有提供任何额外的东西。 - mbq
1
@nico:当然,没有什么比真正的免费更好了。不过,这取决于上下文。例如,像我的实验生物学实验室一样,每周轻松花费800欧元在试剂上(如果你使用老鼠,则每天都要花费那么多),因此每年800欧元甚至都不值得一提。 - Jonas
显示剩余3条评论

1

有很多讨论哪个更好,但在机器学习方面,答案很简单:R是一种专门设计用于此类任务的语言;此外,也有更多且更好文档化的R机器学习软件。


4
我认为MATLAB的文档非常优秀且易于理解。 - Amro
1
@Amro:他特别指的是机器学习,而不是一般的文档。 - nico
没错。我的意思是MATLAB有一些ML工具箱是有文档的,但大部分有用的方法要么根本不存在,要么只是以用户自制的裸脚本形式实现。 即使是工具箱,我总是有一种它们“GUI化”的印象;我的意思是它们执行某些方法,绘制漂亮的图形,并提供随机格式化和难以重用的结果。相比之下,R更加灵活。 - mbq
2
我同意MATLAB没有一个“ML工具箱”,但你可以在核心MATLAB和多个支持的工具箱中找到许多有用的函数:统计学、生物信息学、神经网络等。我提到文档的备注是因为它很好组织;通常有用户指南、函数参考和许多用例和示例,因此对于新手来说非常容易入门,相比之下,R(我承认我有时会迷失在作为完全初学者学习R的过程中)。R缺少的最后一件事是一个现在必不可少的好IDE。 - Amro
在R中也是如此,但总体而言MATLAB ML库比R更加复杂。另一方面,如果您喜欢图形用户界面并且没有发现其引入的限制,那么您可以使用Minitab、Statistica、Weka等软件。 - mbq
@Amro R有几个不错的IDE选项:许多人喜欢带ESS的Emacs或带StatET的Eclipse。JGR、Tinn-R和Revolution是其他选项。请参见http://www.sciviews.org/_rgui/。 - Jeromy Anglim

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