R 机器学习项目模板

应用机器学习是一项经验技能。

你无法通过阅读书籍和博客文章来提高这项技能。你必须练习。

在本文中,你将发现一个简单的 6 步机器学习项目模板,可用于启动你的 R 项目。

通过我的新书《R 语言机器学习精通》开始你的项目,书中包含分步教程和所有示例的R 源代码文件。

让我们开始吧。

Machine Learning Project Template in R

R 机器学习项目模板
照片作者:Jaguar MENA,部分权利保留。

通过端到端项目练习机器学习

完成机器学习问题的端到端实践至关重要。

你可以阅读机器学习。你也可以尝试小的、一次性的方法。但应用机器学习在你从头到尾完成一个数据集之前,不会真正地让你明白。

完成一个项目会迫使你思考模型的用途,挑战你的假设,并擅长项目的各个部分,而不仅仅是你喜欢的那个部分。

练习预测建模机器学习项目的最佳方法是使用 UCI 机器学习存储库的标准化数据集。有关此练习方法的更多信息,请参阅文章:

一旦有了练习数据集和大量的 R 方法,你如何将它们整合在一起并完成端到端的问题?

需要更多关于R机器学习的帮助吗?

参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

使用结构化的分步流程

任何预测建模机器学习项目都可以分解为大约 6 个常见任务。

  1. 定义问题
  2. 汇总数据
  3. 2. 准备数据
  4. 评估算法
  5. 4. 改进结果
  6. 5. 呈现结果

任务可以合并或进一步细分,但这是一般结构。有关此结构的更多信息,请参阅文章:

要在 R 中处理预测建模机器学习问题,你需要将 R 映射到此流程。它们可能需要稍作调整或重命名以适应“R 的做事方式”(例如 caret 包)。

下一节提供了这种映射,并详细介绍了每个任务以及你可以使用的子任务和 caret 包的类型。

R 机器学习项目模板

本节提供了一个项目模板,你可以使用它来端到端地处理 R 中的机器学习问题。

模板摘要

以下是你可以在 R 机器学习项目中使用项目模板。

如何使用项目模板

  1. 为你的项目创建一个新文件(例如 project_name.R)。
  2. 复制项目模板。
  3. 将其粘贴到你的空白项目文件中。
  4. 开始填写,使用此网站和其他网站上的博客文章中的方法。

机器学习项目模板步骤

本节将为你提供模板中每个步骤的更多详细信息。

1. 准备问题

此步骤涉及加载开始处理问题所需的一切。这包括:

  • 你将使用的 R 库,例如 caret。
  • 从 CSV 加载你的数据集。
  • 使用 caret 创建单独的训练和验证数据集。

这里也是任何全局配置的所在地,例如设置任何并行库和用于多核使用的函数。

如果你的数据集太大而无法处理,你可能需要在此处制作数据集的缩小样本。理想情况下,你的数据集应该足够小,可以在一分钟内构建模型或创建可视化,最好是 30 秒。稍后可以随时扩展表现良好的模型。

2. 汇总数据

此步骤旨在更好地理解你可用的数据。

这包括使用以下方法理解你的数据:

  • 描述性统计,例如摘要。
  • 数据可视化,例如 graphics 和 lattice 包的图。

花点时间,并利用结果提出许多问题、假设和猜想,你可以在之后通过专门的模型进行调查。

3. 准备数据

此步骤旨在以最佳方式暴露问题结构以及你的输入属性与输出变量之间的关系来准备数据。

这包括诸如以下任务:

  • 通过删除重复项、标记缺失值甚至填补缺失值来清理数据。
  • 特征选择,其中可以删除冗余特征。
  • 数据转换,其中属性会缩放或重新分配,以便稍后能以最佳方式向学习算法暴露问题结构。

从简单开始。经常重新访问此步骤,并与下一步进行循环,直到你收敛到一组算法和数据表示,这些算法和数据表示能够产生准确或足够准确的模型以继续进行。

4. 评估算法

此步骤旨在找到一组能够很好地利用数据结构的机器学习算法(例如,具有高于平均水平的技能)。

这包括诸如以下步骤:

  • 使用 caret 定义测试选项,例如交叉验证和要使用的评估指标。
  • 抽样检查一组线性和非线性机器学习算法。
  • 比较算法的估计准确性。

实际上,在给定问题上,你可能会在这两个步骤以及上一步花费大部分时间,直到你收敛到一组 3 到 5 个表现良好的机器学习算法。

5. 提高准确性

一旦你有了机器学习算法的简短列表,你就需要充分利用它们。有两种不同的方法可以提高模型的准确性:

  • 使用 caret 搜索每种算法的参数组合,以产生最佳结果。
  • 使用独立算法或 caretEnsemble 包将多个模型的预测组合成集成预测。

当项目变得具体时,这一步和上一步之间的界限可能会模糊。在上一步中可能有一些小的算法调优。对于集成,你可能会在前一步中带来一个简短的算法列表来组合它们的预测。

6. 定稿模型

一旦你找到了一个你认为可以在看不见的模型上做出准确预测的模型,你就可以定稿了。

定稿模型可能涉及诸如以下子任务:

  • 使用 caret 调优的最佳模型在看不见的模型上进行预测。
  • 使用 caret 调优的参数创建独立模型。
  • 将最佳模型保存到文件以备后用。

一旦你走到这一步,你就可以向利益相关者展示结果和/或将模型部署到开始在看不见的模型上进行预测。

使用模板的技巧

以下是一些可以帮助你充分利用 R 中机器学习项目模板的技巧。

  • 快速初次尝试。尽可能快地通过项目步骤进行首次尝试。这将让你有信心拥有所有必需的部分,并有一个改进的基线。
  • 循环。过程不是线性的,而是循环的。你会在步骤之间循环,并且可能在步骤 3-4 或 3-4-5 之间的紧密循环中花费大部分时间,直到达到足够的准确性水平或时间耗尽。
  • 尝试每一步。跳过步骤很容易,特别是如果你不确定或不熟悉该步骤的任务。尝试在过程的每个步骤中做些事情,即使它没有提高准确性。以后你总可以改进它。不要跳过步骤,只需减少它们的贡献。
  • 提升准确性。项目的目标是模型的准确性。每一步都为实现这一目标做出贡献。将你所做的更改和提高准确性的实验视为过程中的黄金路径,并围绕它们重组其他步骤。准确性就像一个只能朝着一个方向(更好,而不是更糟)移动的棘轮。
  • 根据需要调整。根据项目需要修改步骤,特别是当你对模板越来越熟悉时。模糊任务的边界,例如 4-5,以最佳地服务于模型准确性。

你可以在 R 中处理机器学习问题

你不需要是 R 程序员。你可以使用此博客和其他博客上的方法来启动你的机器学习项目,并依靠 R 帮助系统来理解使用的函数和参数。

你不需要是机器学习专家。机器学习是一项经验技能,只能通过练习来提高。现在就开始在小型内存数据集上练习。

你不需要是机器学习算法大师。机器学习算法太多了,不可能成为所有算法的专家。专注于掌握将机器学习算法应用于数据的技能要容易得多。现在就开始使用上面的模板进行练习。

总结

在这篇文章中,你发现了一个 R 中的机器学习项目模板。

它概述了预测建模机器学习项目的步骤,目标是最大化模型准确性。

你可以复制粘贴该模板,并使用它来启动你当前或下一个 R 机器学习项目。

下一步

在项目上使用该模板。

  • 如果你目前正在处理或即将开始处理机器学习项目,请使用该模板。汇报你使用模板的情况以及你需要做的任何修改。
  • 没有项目?从 UCI 机器学习存储库 获取一个标准的小型内存机器学习数据集,今天就开始练习。如果可能,立即开始。

你对机器学习项目模板有疑问吗?在评论区提问,我会尽力回答。

在R中发现更快的机器学习!

Master Machine Learning With R

在几分钟内开发您自己的模型

...只需几行R代码

在我的新电子书中探索如何实现
精通 R 语言机器学习

涵盖自学教程端到端项目,例如
加载数据、可视化、构建模型、调优等等...

最终将机器学习应用到您自己的项目中

跳过学术理论。只看结果。

查看内容

5 条回复 “R 中的机器学习项目模板”

  1. Ma'a 2016年2月22日 10:07 am #

    谢谢。这非常有帮助。

  2. Jose Manuel 2016年2月23日 10:54 am #

    谢谢 Jason,
    你的工作非常好

  3. Sravan Karnati 2016年2月29日 10:28 pm #

    我能否知道如何实现?我有一个数据库和日志数据,不知何故我从其中提取了一些特征。所以我想知道如何实现。我正在使用 SQL Server 数据库,我已经阅读了许多研究论文,但 nowhere 发现训练数据是如何作为输入提供给学习算法的,以及如何将 top_k 结果作为输入提供给算法。我想使用 Java 编程,可以使用吗?

  4. Leo Matczak 2016年3月12日 3:11 pm #

    这应该包括计算细节、性能结果、与现有文献的比较、图表、表格

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。