如何开始用 R 进行机器学习?
R 是一个庞大而复杂的平台。它也是世界上最优秀的数据科学家最喜欢的平台。
在这篇文章中,您将发现一个循序渐进的过程,您可以使用该过程开始在 R 平台上使用机器学习进行预测建模。
这些步骤非常实用且简单,您可以在一个周末内就能构建出准确的预测模型。
该过程确实假定您是一位开发者,了解一些机器学习知识,并且会实际动手操作,但该过程确实能带来成果。
通过我的新书《R 语言机器学习精通》,包括分步教程和所有示例的R 源代码文件,来启动您的项目。
让我们开始吧。

如何在 R 中开始机器学习
照片作者:Sebastiaan ter Burg,部分权利保留。
以错误的方式学习 R
以下是我认为您不应该学习 R 机器学习的方式。
- 第一步:精通 R 编程和 R 语法。
- 第二步:深入了解您可以在 R 中使用的每种可能的算法的理论。
- 第三步:详细研究如何在 R 中使用每种机器学习算法。
- 第四步:只对模型评估进行浅尝辄止。
我认为这是错误的方式。
- 它告诉您需要花所有时间学习如何使用单个机器学习算法。
- 它没有教您在 R 中构建可用于实际预测的预测机器学习模型的过程。
不幸的是,这是我几乎在所有相关书籍和在线课程中看到的教授 R 机器学习的方法。
您不想成为 R 甚至是 R 中机器学习算法的佼佼者。您想成为使用 R 构建准确预测模型的佼佼者。这就是背景。
您可以花时间深入学习单个机器学习算法,只要它有助于您更可靠地构建更准确的预测模型。
需要更多关于R机器学习的帮助吗?
参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
R 机器学习的良好背景
您可以直接开始学习 R。放手去做。
不过,恕我直言,我认为如果您有一些背景知识,您将从中受益更多。
R 是一个高级平台,初学者也可以从中受益匪浅。但是,如果您有一些机器学习和编程基础,R 将会迅速成为您构建准确预测模型的超级工具。
一般建议
以下是一些关于如何最好地入门 R 机器学习的建议。我认为这些对于对机器学习感兴趣的现代开发者来说是合理的。
一位了解如何编程的开发者。这很有帮助,因为掌握 R 的语法(有时会有点奇怪)不会是一件难事。了解如何快速编写脚本或小程序(小型脚本)来完成这项或那项任务也很有帮助。毕竟,R 是一门编程语言。
对预测建模机器学习感兴趣。机器学习是一个涵盖各种有趣算法的广阔领域。预测建模是一个子领域,仅关注构建对新数据进行预测的模型。而不是解释数据之间的关系,也不是从数据中学习。预测建模是 R 在机器学习平台方面真正闪耀的领域。
熟悉机器学习基础知识。您将机器学习理解为一个归纳问题,所有算法都在试图估计一个从输入空间到输出空间的底层映射函数。所有预测机器学习都可以通过这种视角来理解,搜索良好和最佳机器学习算法、算法参数和数据转换的策略也是如此。
具体建议
我在下一节中概述的方法也对您的背景做了一些假设。
您不是机器学习的绝对初学者。您可能是,该方法可能对您有效,但如果您有一些额外的建议背景,您将从中受益更多。
您希望采用自顶向下的方法来学习机器学习。这是我教授的方法,即不从理论和原则开始,最终才接触实际的机器学习(如果有时间的话),而是从完成一个端到端的项目目标开始,并在需要时研究细节,以便交付更好的结果。
您熟悉预测建模机器学习项目的步骤。特别是
- 定义问题
- 2. 准备数据
- 评估算法
- 4. 改进结果
- 5. 呈现结果
您可以在这里了解更多关于此过程和这些步骤的信息
您至少熟悉一些机器学习算法。或者您知道如何快速掌握它们,例如使用算法描述模板方法。我认为学习机器学习算法的细节以及原因与学习如何在 R 这样的机器学习平台上使用这些算法是分开的任务。它们经常在书籍和课程中混淆,损害了学习效果。
您可以在这里了解更多关于如何使用模板方法学习任何机器学习算法
如何在 R 中学习机器学习
本节概述了一个您可以用来开始在 R 平台上构建机器学习预测模型的过程。
它分为两个部分
- 将机器学习项目的任务映射到 R 平台。
- 使用标准数据集完成预测建模项目。
1. 将机器学习任务映射到 R
您需要了解如何在 R 平台上执行机器学习的特定任务。一旦您知道如何使用该平台完成离散任务并可靠地获得结果,您就可以在每个项目中一次又一次地重复。
这个过程很简单
- 列出预测建模机器学习项目的所有离散任务。
- 创建可靠完成任务的“食谱”,您可以将其作为未来项目的起点复制粘贴。
- 随着您对平台和机器学习理解的提高,添加和维护“食谱”。
预测建模任务
以下是您可能希望映射到 R 平台并创建“食谱”的预测建模任务的最小列表。这并不完整,但确实涵盖了该平台的广泛概述。
- R 语法概述
- 2. 准备数据
- 加载数据
- 处理数据
- 数据汇总
- 数据可视化
- 数据清洗
- 特征选择
- 数据转换
- 评估算法
- 重采样方法
- 评估指标
- 抽查算法
- 模型选择
- 4. 改进结果
- 算法调优
- 集成方法
- 5. 呈现结果
- 最终确定模型
- 做出新预测
您会注意到第一个任务是 R 语法概述。作为一名开发者,您需要了解语言的基础知识才能做任何事情。例如赋值、数据结构、流程控制以及创建和调用函数。
独立“食谱”库
我建议创建独立的“食谱”。这意味着每个“食谱”都是一个完整的程序,包含完成任务和产生输出所需的一切。这意味着您可以将其直接复制到未来的预测建模项目中。
您可以将“食谱”存储在目录或 GitHub 上。
2. 小型预测建模项目
机器学习常见预测建模任务的“食谱”是不够的。
同样,这也是大多数书籍和课程停止的地方。它们会让您自行将“食谱”组合成端到端的项目。
您需要将“食谱”组合成端到端的项目。这将教您并向您展示如何实际使用该平台交付结果。我建议仅使用来自 UCI 机器学习库 的小型、易于理解的机器学习数据集。
这些数据集可免费作为 CSV 文件下载,并且大多数可以通过加载第三方库直接在 R 中获取。这些数据集非常适合练习,因为
- 它们很小,意味着它们可以放入内存,算法可以合理地对其进行建模。
- 它们表现良好,意味着您通常不需要进行大量特征工程就能获得良好的结果。
- 它们是标准化的,这意味着许多人以前使用过它们,您可以从中获得有关要尝试的好算法以及您应该期望的好结果的灵感。
我建议至少进行三个项目
- Hello World 项目(鸢尾花)。这是一个快速通过项目步骤的项目,无需对被广泛用作机器学习“Hello World”的数据集(更多关于 鸢尾花数据集 的信息)进行太多调整或优化。
- 端到端的二元分类。对二元分类问题(例如 Pima 印度糖尿病数据集(csv 文件))的每个步骤进行操作。
- 端到端的回归。对回归问题(例如 波士顿住房数据集)的每个步骤进行操作。
添加和维护“食谱”
R 语言机器学习不仅仅是完成一些小型标准数据集。您需要承担更多和不同的挑战。
- 标准数据集:您可以练习 UCI 机器学习库中的其他标准数据集,克服不同问题类型的挑战。
- 竞赛数据集:您可以尝试处理更具挑战性的数据集,例如来自过去 Kaggle 竞赛或过去 KDDCup 挑战的数据集。
- 您自己的项目:理想情况下,您需要开始处理您自己的项目。
在此过程中,您将不断查阅帮助文档,调整您的脚本,并学习如何从 R 机器学习中获得更多收益。
重要的是,您要将这些知识整合到您的机器学习“食谱”库中。这将使您能够在新项目上快速利用这些知识,并极大地提高您开发预测模型的技能和速度。
通过此过程您的成果
您可以在一个周末内完成此过程。到那个周末结束时,您将拥有可以使用 R 机器学习开始为自己的问题建模的“食谱”和项目模板。
您将从一位对 R 机器学习感兴趣的开发者,转变为一位拥有资源和能力,能够使用 R 端到端处理新数据集并开发可用于演示和部署的预测模型的开发者。
具体来说,您将学会
- 如何在 R 中实现预测建模问题的子任务。
- 如何在 R 中学习新的和不同的子任务。
- 如何获取 R 的帮助。
- 如何完整处理小型到中型数据集。
- 如何交付一个能够对新的、未见过的数据进行预测的模型。
从此,您可以开始深入研究所用函数、技术和算法的具体细节,目标是学习如何更好地使用它们,以便在更短的时间内更可靠地交付更准确的预测模型。
总结
在这篇文章中,您发现了一个循序渐进的过程,您可以使用该过程来学习和入门 R 机器学习。
该过程的三个高级步骤是
- 将预测建模过程的步骤映射到 R 平台,并创建可重用的“食谱”。
- 使用小型标准机器学习数据集完成预测建模,将“食谱”组合成项目。
- 处理更多、不同的数据集,最好是您自己的数据集,并添加到您的“食谱”库中。
您还发现了该过程背后的理念以及该过程最适合您的原因。
下一步
您想开始用 R 进行机器学习吗?
- 立即下载并安装 R。
- 使用上面概述的过程,将自己限制在一个周末内,并尽可能多地学习。
- 请反馈。发表评论。我很想听听您的进展。
您对这个过程有什么疑问吗?发表评论,我会尽力回答。
Jason,
您推荐哪本书来学习机器学习背后的数学?您读了哪本书?
在没有数学知识的情况下,机器学习有可能存活吗?
是的,只需专注于交付结果。
在有了上下文之后,数学就会变得有意义,例如,您知道如何端到端地解决问题。
一本好书是《统计学习要素》。