R 平台在统计计算方面可能是应用机器学习最流行、最强大的平台。
R 中的 caret 包被称为“R 的竞争优势”。它使在 R 中训练、调优和评估机器学习模型的过程变得一致、简单,甚至很有趣。
在这篇文章中,您将了解 R 中的 caret 包、其主要功能以及在哪里可以了解更多信息。
通过我的新书 《R 语言机器学习精通》 快速启动您的项目,书中包含分步教程以及所有示例的R 源代码文件。
让我们开始吧。
什么是 Caret R 包
Caret 包建立在机器学习的一个关键理念之上,即“没有免费午餐”定理。该定理指出,在没有任何关于预测问题的先验知识的情况下,不能说任何一种方法比其他方法更好。
面对这一定理,caret 包在应用机器学习的实践方法上持有一种观点。您无法知道哪种算法或哪种算法参数对于给定的问题是最优的,这只能通过经验实验来了解。这就是 caret 包旨在促进的过程。
它通过以下几种主要方式实现这一目标:
- 简化的模型创建:它为 R 中许多最流行的第三方算法提供了一致的接口来训练模型。
- 评估参数对性能的影响:它提供了工具来对算法参数的组合进行网格搜索,并以客观度量来了解参数对给定问题的模型的影响。
- 选择最优模型:它提供了工具来评估和比较给定问题的模型,以便使用客观标准找到最合适的模型。
- 估计模型性能:它提供了工具来估计给定问题中模型在未见过数据上的准确性。
需要更多关于R机器学习的帮助吗?
参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
Caret 的功能
caret 包围绕核心理念构建了许多功能。例如:
- 数据分割:将数据分割为训练集和测试集。
- 数据预处理:为建模准备数据,如归一化和标准化。
- 特征选择:选择用于有效预测的必要属性的方法。
- 特征重要性:评估数据集中每个属性对预测属性的相关性。
- 模型调优:评估算法参数对性能的影响并找到最优配置。
- 并行处理:使用并行计算(如工作站上的多核)来调优和估计模型性能,从而提高性能。
- 可视化:通过定制的可视化更好地理解训练数据、模型比较以及参数对模型的影响。
Caret 的由来
Caret 是由辉瑞公司的 Max Kuhn 创建和维护的 R 包。开发始于 2005 年,后来成为开源项目并上传到 CRAN。
Caret 实际上是一个首字母缩略词,代表分类和回归训练(Classification And REgression Training,CARET)。
它最初是为了满足针对给定问题运行多种不同算法的需求而开发的。R 包由第三方创建,在训练和生成预测时,其参数和语法可能有所不同。caret 包的早期版本旨在统一模型训练和预测。
后来,它扩展到进一步标准化相关的常见任务,如参数调优和确定变量重要性。
对 Max Kuhn 的采访
Max Kuhn 在 useR 会议上接受了 DataScience.LA 的采访。在采访中,Max 谈到了 caret 的开发以及他对 R 的使用。他谈到了在给定问题上测试多个模型的重要性以及同时处理多个不同软件包的痛苦,这促使他创建了这个包。
Max Kuhn 对 Caret 的演示
Max Kuhn 在这次演示中展示了 caret 并讨论了它的开发和功能。他再次提到了“没有免费午餐”定理以及测试多个模型的需求。演示的核心是对某些流失数据进行模型示例。他讨论了估计模型性能、算法调优等等。
Caret 资源
如果您对 caret 包感兴趣,请查看以下链接。
- Caret 包主页
- Caret 包在 CRAN 上
- Caret 包手册 (PDF,所有函数)
- Caret 包简介 (PDF 教程)
- 使用 caret 包在 R 中构建预测模型 (PDF 论文)
- GitHub 上的开源项目 (源代码)
非常喜欢您网站上发布的所有内容。
谢谢 Eugine!
强烈推荐 Max 的预测分析培训,这基本上是 caret 包和他的书的讲义。
嗨 Ken,您指的是哪个培训?我知道 Max 的书,但不知道是否有官方的培训课程。是 YouTube 上的视频吗?谢谢。
Jason,感谢您在这个平台上分享您的知识。这很有用!
他现在在 DataCamp。查找名为“机器学习工具箱”的课程。
有意思。
我的网站做得非常棒。我想问一个问题。我们能生成随机森林的树的样本吗?
谢谢。
你具体指的是什么?