如何开始用 R 学习机器学习?
在这篇文章中,你将了解到 Brett Lantz 撰写的《R 语言机器学习》一书,该书旨在告诉你如何在 R 中开始实践机器学习。
我们将介绍本书的读者对象、对内容进行深入细致的分析,并总结其优缺点。
通过我的新书 《R 语言机器学习精通》**开启你的项目**,其中包括**分步教程**和所有示例的 **R 源代码**文件。
让我们开始吧。
注意:我们在此评论中讨论的是第二版。
谁应该阅读这本书?
有两种类型的人应该阅读这本书:
- 机器学习实践者。你已经了解一些机器学习知识,并且希望学习如何使用 R 实践机器学习。
- R 实践者。你是一个 R 用户,并且希望学习足够的机器学习知识来使用 R 进行实践。
摘自序言:
对基础数学和编程概念有一些了解会有帮助,但不需要先验经验。
需要更多关于R机器学习的帮助吗?
参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
图书内容
本节将引导你了解本书涵盖的主题。
当我阅读一本新书时,我喜欢逐章阅读,看看它带我经历了哪些步骤或旅程。这本书的旅程如下:
- 什么是机器学习。
- 处理数据。
- 大量机器学习算法。
- 评估模型准确性。
- 提高模型准确性。
这涵盖了机器学习项目所需的许多任务,但也有一些遗漏。
让我们逐章看看这本书提供了什么。
第 1 章:机器学习简介
提供机器学习、术语和(非常)高级学习理论的介绍。
涵盖的主题包括:
- 机器学习的用途与滥用
- 机器如何学习
- 实践中的机器学习
- R 语言机器学习
有趣的是,书中涵盖了机器学习伦理这一主题,这是一个不常被讨论的话题。
第 2 章:管理和理解数据
涵盖 R 基础知识,但真正侧重于如何加载、总结和可视化数据。
主题包括:
- R 数据结构
- 使用 R 管理数据
- 探索和理解数据
书中花费了大量时间介绍不同的图表类型,我通常很喜欢这一点。了解并使用不止一两种图表类型是很好的。
第 3 章:懒惰学习——使用最近邻进行分类
本章介绍并演示了 k 近邻(kNN)算法。
涵盖的主题包括:
- 理解最近邻分类
- 示例——使用 k-NN 算法诊断乳腺癌
我喜欢它在数据转换上花费了大量时间,这对于 kNN 的准确性至关重要。
第 4 章:概率学习——使用朴素贝叶斯进行分类
本章介绍并演示了用于分类的朴素贝叶斯算法。
涵盖的主题包括:
- 理解朴素贝叶斯
- 示例——使用朴素贝叶斯算法过滤手机垃圾短信
我喜欢它使用的有趣的案例研究问题。
第 5 章:分而治之——使用决策树和规则进行分类
本章介绍决策树和规则系统,以及 C5.0、1R 和 RIPPER 算法。
涵盖的主题包括:
- 理解决策树
- 示例——使用 C5.0 决策树识别高风险银行贷款
- 理解分类规则
- 示例——使用规则学习器识别有毒蘑菇
我喜欢它涵盖 C5.0,因为它长期以来一直是重点,最近才作为开源发布并在 R 中可用。我惊讶于没有涵盖 CART,它是决策树算法的“hello world”。
第 6 章:预测数值数据——回归方法
本章全部关于回归,演示了线性回归、CART 和 M5P。
涵盖的主题包括:
- 理解回归
- 示例——使用线性回归预测医疗费用
- 理解回归树和模型树
- 示例——使用回归树和模型树估计葡萄酒的质量
很高兴在这里看到经典的线性回归和 CART。M5P 也是一个不错的补充。
第 7 章:黑箱方法——神经网络和支持向量机
本章介绍人工神经网络和支持向量机。
涵盖的主题包括:
- 理解神经网络
- 示例——使用 ANN 模拟混凝土强度
- 理解支持向量机
- 示例——使用 SVM 执行 OCR
很高兴看到这些算法被涵盖,而且示例问题也很有趣。
第 8 章:发现模式——使用关联规则进行市场购物篮分析
本章介绍并演示了关联规则算法,通常用于市场购物篮分析。
涵盖的主题包括:
- 理解关联规则。
- 示例——使用关联规则识别常购杂货
这不是我特别喜欢的主题,也不是我在项目中使用过的算法。我可能会跳过这一章。
第 9 章:查找数据组——使用 k-means 进行聚类
本章介绍 k-means 聚类算法,并演示了如何在数据上使用它。
涵盖的主题包括:
- 理解聚类
- 示例——使用 k-means 聚类查找青少年市场细分
另一个深奥的话题,我可能会跳过。聚类很有趣,但通常无监督学习算法在实践中很难很好地使用。这里有一些聚类,然后呢?
第 10 章:评估模型性能
本章介绍了评估模型技能的方法。
涵盖的主题包括:
- 衡量分类性能
- 评估未来性能
我喜欢它涵盖性能度量和重采样方法。许多教材都跳过了这一点。我喜欢它花费大量时间关注分类准确性的更详细问题(例如,涉及 Kappa 和 F1 分数)。
第 11 章:改进模型性能
本章介绍了可用于提高模型准确性的技术,即算法调优和集成。
涵盖的主题包括:
- 调整现有模型以获得更好的性能
- 通过元学习提高模型性能
很好,但过于简短。算法调优和集成是现代机器学习中构建准确模型的重要组成部分。考虑到它是一本入门书籍,长度可能合适,但应该花更多时间介绍 caret 包。
如果你在 R 中进行机器学习时没有使用 caret,那么你做错了。
第 12 章:专门的机器学习主题
本章包含许多其他主题,包括:
- 使用专有文件和数据库
- 使用在线数据和服务
- 使用特定领域数据
- 提高 R 的性能
这些主题非常专业化。也许只有最后一个关于“提高 R 的性能”对你的机器学习项目才真正可行。
机器学习算法的神秘面纱
本书涵盖了多种不同的机器学习算法。本节列出了所有涵盖的算法及其所在的章节。
我注意到书的第 21 页确实提供了一个算法到章节的查找表,但它过于笼统,并且忽略了所使用的算法的实际名称。
- k-近邻(第 3 章)
- 朴素贝叶斯(第 4 章)
- C5.0(第 5 章)
- 1R(第 5 章)
- RIPPER(第 5 章)
- 线性回归(第 6 章)
- 分类和回归树(第 6 章)
- M5P(第 6 章)
- 人工神经网络(第 7 章)
- 支持向量机(第 7 章)
- Apriori(第 8 章)
- k-means(第 9 章)
- Bagged CART(第 10 章)
- AdaBoost(第 10 章)
- 随机森林(第 10 章)
我对这本书的看法?
我喜欢这本书作为在 R 平台上进行机器学习的入门。
你必须知道如何编程。你必须对 R 有一些了解。你必须对如何从头到尾驱动一个机器学习项目有一些概念。本书不会涵盖这些主题,但它会向你展示如何使用 R 完成常见的机器学习任务。
请相应地设定你的期望:
- 这是一本实用的书,包含工作示例和高级算法描述。
- 这不是一本机器学习教科书,不包含理论、证明和大量方程式。
优点
- 我喜欢结构化的示例,其中每个算法都用不同的数据集进行演示。
- 我喜欢数据集是内存中小的示例,可能都取自 UCI 机器学习存储库。
- 我喜欢在适当的地方提供参考文献,以便进一步阅读。
- 我喜欢总结算法和其他关键技术使用信息的方框。
- 我喜欢它注重实践,关注机器学习的“如何做”而不是“为什么”。
缺点
- 我不喜欢它过于专注于算法。它沿袭了大多数“应用书籍”的通用结构,抛出大量算法给你,而不是完整的项目生命周期。
- 我不喜欢没有端到端的示例(从问题定义到模型选择,再到结果展示)。示例的正式结构很好,但我认为需要一个深入的案例研究章节。
- 我无法从 GitHub 存储库或以 zip 格式下载代码和数据集。我必须注册并按照他们的流程操作。
- 有些章节感觉它们的存在仅仅是因为其他机器学习书籍中存在类似的章节(聚类和关联规则)。这些可能是机器学习方法,但在实践中远不如核心预测建模方法常用(恕我直言)。
- 也许有点太多的填充内容。我喜欢少说多做。如果我想要冗长的算法描述,我会去读一本算法教科书。告诉我大方向,然后让我们开始。
结束语
如果你正在寻找一本好的 R 语言机器学习应用书籍,就是它了。我喜欢它适合那些对机器学习和/或 R 有一些了解,并希望在 R 平台上实践机器学习的初学者。
尽管我认为 O’Reilly 的书通常比 Packt 的书更注重应用,但我没有看到 O’Reilly 有能与之竞争的产品。
如果你想更深入一步,获得更多理论和解释,我建议你看看:《应用预测建模》。如果你想要更多的数学知识,我建议你看看《统计学习导论:R 语言应用》。
这两本书都有 R 语言示例,但对 R 的关注较少,更多地关注机器学习算法的细节。
资源
下一步
你读过这本书吗?在评论中告诉我你的想法。
你正在考虑购买这本书吗?有什么问题吗?在评论中告诉我,我会尽力回答。
感谢您的精彩评论。顺便说一句,我在以下 github 页面上找到了数据。
https://github.com/dataspelunking/MLwR
谢谢。
Jason,感谢您的这篇评论。我买并认真学习了您的书《R 语言机器学习精通》,它在端到端的预测建模项目实践建议方面与我读过的其他书籍截然不同。
多亏了它,我现在有了一个框架来完成几个简单的端到端机器学习项目(我来自非 IT 背景,正在通过书籍和在线课程自学 R 语言和机器学习)
您会推荐这本书作为下一本要学习的书吗?或者您会推荐其他什么?我的重点(就像您的优秀书籍一样)仍然是实践、应用知识。
谢谢!
谢谢特伦斯!
如果你正在寻找更多类似的内容,这本书可能会有所帮助。