您应该使用 R 进行机器学习。
R 是最强大的机器学习平台之一,被世界顶尖的数据科学家所使用。
在本篇文章中,您将了解为什么应该使用 R 进行机器学习。
启动您的项目,阅读我的新书《R 机器学习精通》,其中包含分步教程和所有示例的R 源代码文件。
让我们开始吧。

R 机器学习平台
图片来自 Christopher Woo,部分权利保留。
你为什么应该关心 R
世界顶尖的数据科学家都在使用 R。在 Kaggle(一个机器学习竞赛平台)的调查中,R 是迄今为止使用最广泛的机器学习工具。当专业机器学习从业者在 2015 年接受调查时,R 再次成为最受欢迎的机器学习工具。
R 功能强大,因为它提供了广泛的技术。您可以想到任何用于数据分析、可视化、抽样、监督学习和模型评估的技术,R 都提供了。该平台提供的技术比您遇到的任何其他平台都多。
R 是最先进的,因为它被学术界所使用。R 拥有如此多技术的原因之一是,开发新算法的学者正在 R 中开发它们并将其发布为 R 包。这意味着您可以在其他平台之前在 R 中访问最先进的算法。这也意味着,在有人将某些算法移植到其他平台之前,您只能在 R 中访问它们。
R 是免费的,因为它是开源软件。您现在就可以免费下载它,并且它可以在您可能使用的任何工作站平台上运行。
心动了吗?
需要更多关于R机器学习的帮助吗?
参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
那么 R 是什么?
R 是一种语言、一个解释器和一个平台。
R 是一种计算机语言。它可能很难学习,但如果您使用过 Python、Ruby 或 BASH 等其他脚本语言,它会很熟悉,您会很快掌握它。
R 是一个解释器。您可以编写脚本并将它们保存为文件。与其他脚本语言一样,您可以使用解释器随时运行这些脚本。R 还提供了一个 REPL 环境,您可以在其中输入命令并立即看到输出。
R 也是一个平台。您可以使用它来创建和显示图形、保存和加载状态以及与其他系统进行交互。如果您愿意,您可以在 REPL 环境中完成所有探索和开发。
想了解更多,请查看我之前的文章 什么是 R?
力量在于包
R 的力量在于其包。
R 本身非常简单。它为基本统计和数据处理提供了内置命令。您将使用的 R 的机器学习功能来自第三方包。包是 R 平台的插件。您可以在 R 环境中搜索、下载并安装它们。
由于包由第三方创建,因此它们的质量可能各不相同。最好搜索提供您要使用的特定技术的最佳包。包以帮助文档的形式提供每个包函数的文档,并经常提供演示如何使用该包的指南。
在您编写任何代码之前,请务必搜索一下是否有可以满足您需求的包。
您可以在 R 归档网络 (CRAN) 上搜索包。
如何使用 R 进行机器学习?
R 平台并非适用于所有类型的机器学习项目。其优势在于用于探索和构建一次性模型。
交互式探索环境
R 交互式环境对于探索和学习如何使用包和函数非常有帮助。刚开始时,您应该在交互式环境中花费大量时间。
如果您正在探索一个新问题,该环境也非常有用。这不是系统地解决问题,而是更多地尝试“如果”场景。
如果您想使用系统化的流程并快速创建原型模型,而无需经过完整的繁琐流程,那么它也非常棒。

R 交互式环境
您可以通过在命令行输入以下命令来启动交互式环境
|
1 |
$ R |
您可以通过输入以下命令来获取任何函数的帮助
|
1 |
help(function_name) |
您可以通过调用 quit 函数来关闭交互式环境
|
1 |
q() |
使用脚本进行一次性模型
我建议您如果有一个机器学习项目,就应该开发脚本。
您的项目中的每个任务都可以用一个新脚本来描述,该脚本可以被文档化、更新并在版本控制中进行跟踪。
R 脚本可以从命令行运行,可以从 shell 脚本调用,还可以(我个人最喜欢)从 Makefile 的目标中调用。
例如,这是您如何从命令行、shell 脚本或 make 文件调用 R 可执行文件来运行您的脚本文件
|
1 |
R CMD BATCH your_script.R your_script.log |
这会以批处理模式(非交互式)运行 your_script.R 脚本,并将脚本的任何结果保存在 your_script.log 文件中。
不适用于生产环境
R 可能不是构建生产模型的最佳解决方案。
这些技术可能是最先进的,但它们可能不使用最佳的软件工程原则,没有测试,或者无法扩展到您可能需要处理的数据集大小。
话虽如此,R 可能是发现实际在生产中使用哪个模型的最佳解决方案。
格局正在变化,人们正在编写 R 脚本以在生产环境中运行,并且正在出现支持更大数据集的服务。
使用 R 的通用技巧
以下是一些充分利用 R 进行机器学习的技巧。
- 坚持使用基础 R。在您熟悉环境之前,不要编写函数和严肃的代码。坚持调用包中的函数。
- 从帮助和指南中学习。包附带帮助文档,其中包含每个函数的文档和提供使用信息的指南。如有疑问,请在您最喜欢的搜索引擎中搜索该包,以找到该包在 CRAN 上的主页。运行指南中的示例可以教会您很多关于函数预期用法的知识。
- 表格数据。由于 R 是由统计学家为统计学家设计的,因此它适用于表格数据,例如电子表格中的数据矩阵。
- 小数据。R 更适合小型数据集,例如数万或数十万行,但不适合数百万行。
- 不要编程。专注于包和函数以及如何有效地使用它们。除非您想创建自己的包,否则我不建议学习“如何在 R 中编程”。
您可以使用 R 进行机器学习
您不需要成为 R 程序员。如果您会使用 Java、C#、JavaScript 或 Python 等其他编程语言进行编程,那么您就可以使用 R。您将很快掌握其语法。
您不需要成为一名优秀的程序员。擅长使用 R 并不在于成为一名优秀的程序员,而在于知道使用哪些包以及如何有效地使用它们。阅读有关这些包的信息并练习使用它们。不要学习如何在 R 中出色地编程,这是一种浪费时间。
您不需要成为机器学习专家。有数百个机器学习包和数千种技术供您使用。花点时间,阅读文档并勤加练习。
总结
在本篇文章中,您了解到您应该使用 R 进行机器学习。
它是专业人士和世界顶尖数据科学家使用最广泛的机器学习平台之一。
您发现了 R 的最佳用途
- 在交互式环境中将 R 用于探索和原型设计。
- 通过编写脚本将 R 用于开发一次性模型。
你的下一步
您想使用 R 进行机器学习吗?
立即开始!
您有任何问题吗?给我发邮件或在下方评论。







谢谢 Jason!一如既往地有帮助。
很高兴您觉得它有用,Ivan。
非常有用,我已经在 R 中开始学习了,并意识到我可以将 R 作为一门编程语言来学习,但关于 R 作为编程语言,我得到了很多矛盾的信息,因为它更领域特定,因此针对该功能进行了优化(R 中的“for”命令是优化的还是附加的?)。所以,我同意你的观点,是包让它变得伟大,我将专注于此。谢谢你帮我理清了这一点!
谢谢 Xandbal,很高兴听到您的反馈。
对初学者来说非常好。非常感谢 Jason Brownlee
不客气,Venu。
您说不建议 R 用于大型数据集,您会推荐哪种语言?
您可以通过取样来减小数据集的大小。
Hadoop 和 Spark 等平台是为大型数据集设计的。这不是推荐,只是指出了一个不同类别的工具。
非常棒……谢谢 Jason
不客气,Raghuraj。
什么是机器学习,为什么我们需要在其中使用 R… 为什么我们不能使用 R 包代替机器学习包来做同样的事情??????
我推荐使用 caret 包进行 R 的应用机器学习。
https://machinelearning.org.cn/start-here/#r
解释 R 的最佳方式…
谢谢 Jason ..
谢谢,很高兴对您有帮助。
你好,Jason。为什么我的 Weka 没有 CPython 脚本机器学习库?
抱歉,我不明白。也许您可以详细说明?
感谢您提供有用的信息。很高兴阅读这篇博文。
这是一个好网站,观点也很棒。我学到了很多有用的信息。
不客气!
你好 Jason,
我可以使用 R 作为机器学习语言来预测客户的贷款资格吗?
你好 Stephane…R 确实很强大,但是,我们推荐 Python,我们的大部分内容都基于 Python 进行机器学习。
你好 Jason,
感谢您提供的这篇文章。请问,为什么外面大多数 ML 探索性项目的示例脚本是用 Python 而不是 R 编写的?
例如,一个人可以在网上轻松找到用于恶意 URL 检测的 Python 实现脚本,但找不到 R 版本。
其次,我想对公司网络上的异常用户或实体行为进行探索性研究项目。我比 Python 更熟悉 R。哪种语言更适合实现这个目标,并且能在网上找到有用的示例代码?
谢谢你
你好 Felix…非常欢迎!
我的深度学习教程主要集中在 Python 中的 Keras 库。
主要原因是,Python 中的机器学习和深度学习技能需求量很大。您可以在这篇帖子中了解更多信息
Python 是应用机器学习领域中不断发展的平台
我相信 Keras 现在在 R 中也受支持,也许该库的大部分 API 函数调用和参数都相同。
您可能只需少量工作即可将我的基于 Python 的教程移植到 R 中。
谢谢 Jason。我了解一些 R 的基础知识,并计划将来深入学习 R。