具体描述
随着大数据的概念变得越来越流行,对数据的探索、分析和预测成为大数据分析领域的基本技能之一。作为探索和分析数据的基本理论和工具,机器学习和数据挖掘成为时下炙手可热的技术。R作为功能强大并且免费的数据分析工具,在数据分析领域获得了越来越多用户的青睐。
本书通过丰富的实际案例来探索如何应用R来进行现实世界问题的机器学习,如何从数据中获取可以付诸行动的洞察力。本书案例清晰而实用,讲解循序渐进,是一本用R进行机器学习的实用指南,既适用于机器学习的初学者,也适用于具有一定经验的老手,本书将帮助他们回答有关R的所有问题。
作者简介
Brett Lantz
在应用创新的数据方法来理解人类的行为方面有10余年经验。他最初是一名社会学家,在学习一个青少年社交网站分布的大型数据库时,他就开始陶醉于机器学习。从那时起,他致力于移动电话、医疗账单数据和公益活动等交叉学科的研究,并维护dataspelunking.com这个网站,该网站致力于分享有关探寻数据中所蕴含的洞察的知识。
译者简介
李洪成 统计学博士,现为上海金融学院副教授,是SPSS统计分析软件和R语言专家。他的研究方向为金融统计和数据挖掘。他曾出版多本著作,并在专业杂志发表多篇论文,代表著作有《SPSS18数据分析基础与实践》、《SPSS数据分析教程》、《时间序列预测实践教程》,译著有《R语言经典实例》、《数据挖掘与R语言》、《金融数据分析导论:基于R语言》等。
目录信息
译者序
前言
致谢
关于技术评审人
第1章 机器学习简介 1
1.1 机器学习的起源 2
1.2 机器学习的使用与滥用 3
1.3 机器如何学习 5
1.3.1 抽象化和知识表达 6
1.3.2 一般化 7
1.3.3 评估学习的成功性 9
1.4 将机器学习应用于数据中的步骤 9
1.5 选择机器学习算法 10
1.5.1 考虑输入的数据 10
1.5.2 考虑机器学习算法的类型 11
1.5.3 为数据匹配合适的算法 13
1.6 使用R进行机器学习 13
1.7 总结 17
第2章 数据的管理和理解 18
2.1 R数据结构 18
2.2 向量 19
2.3 因子 20
2.3.1 列表 21
2.3.2 数据框 22
2.3.3 矩阵和数组 24
2.4 用R管理数据 25
2.4.1 保存和加载R数据结构 25
2.4.2 用CSV文件导入和保存数据 26
2.4.3 从SQL数据库导入数据 27
2.5 探索和理解数据 28
2.5.1 探索数据的结构 29
2.5.2 探索数值型变量 29
2.5.3 探索分类变量 37
2.5.4 探索变量之间的关系 39
2.6 总结 42
第3章 懒惰学习——使用近邻分类 44
3.1 理解使用近邻进行分类 45
3.1.1 kNN算法 45
3.1.2 为什么kNN算法是懒惰的 51
3.2 用kNN算法诊断乳腺癌 51
3.2.1 第1步——收集数据 51
3.2.2 第2步——探索和准备数据 52
3.2.3 第3步——基于数据训练模型 55
3.2.4 第4步——评估模型的性能 57
3.2.5 第5步——提高模型的性能 58
3.3 总结 60
第4章 概率学习——朴素贝叶斯分类 61
4.1 理解朴素贝叶斯 61
4.1.1 贝叶斯方法的基本概念 62
4.1.2 朴素贝叶斯算法 65
4.2 例子——基于贝叶斯算法的手机垃圾短信过滤 70
4.2.1 第1步——收集数据 70
4.2.2 第2步——探索和准备数据 71
4.2.3 数据准备——处理和分析文本数据 72
4.2.4 第3步——基于数据训练模型 78
4.2.5 第4步——评估模型的性能 79
4.2.6 第5步——提升模型的性能 80
4.3 总结 81
第5章 分而治之——应用决策树和规则进行分类 82
5.1 理解决策树 82
5.1.1 分而治之 83
5.1.2 C5.0决策树算法 86
5.2 例子——使用C5.0决策树识别高风险银行贷款 89
5.2.1 第1步——收集数据 89
5.2.2 第2步——探索和准备数据 89
5.2.3 第3步——基于数据训练模型 92
5.2.4 第4步——评估模型的性能 95
5.2.5 第5步——提高模型的性能 95
5.3 理解分类规则 98
5.3.1 独立而治之 99
5.3.2 单规则(1R)算法 101
5.3.3 RIPPER算法 103
5.3.4 来自决策树的规则 105
5.4 例子——应用规则学习识别有毒的蘑菇 105
5.4.1 第1步——收集数据 106
5.4.2 第2步——探索和准备数据 106
5.4.3 第3步——基于数据训练模型 107
5.4.4 第4步——评估模型的性能 109
5.4.5 第5步——提高模型的性能 109
5.5 总结 111
第6章 预测数值型数据——回归方法 113
6.1 理解回归 113
6.1.1 简单线性回归 115
6.1.2 普通最小二乘估计 117
6.1.3 相关系数 118
6.1.4 多元线性回归 120
6.2 例子——应用线性回归预测医疗费用 122
6.2.1 第1步——收集数据 122
6.2.2 第2步——探索和准备数据 123
6.2.3 第3步——基于数据训练模型 127
6.2.4 第4步——评估模型的性能 129
6.2.5 第5步——提高模型的性能 130
6.3 理解回归树和模型树 133
6.4 例子——用回归树和模型树估计葡萄酒的质量 135
6.4.1 第1步——收集数据 135
6.4.2 第2步——探索和准备数据 136
6.4.3 第3步——基于数据训练模型 137
6.4.4 第4步——评估模型的性能 140
6.4.5 第5步——提高模型的性能 142
6.5 总结 144
第7章 黑箱方法——神经网络和支持向量机 146
7.1 理解神经网络 146
7.1.1 从生物神经元到人工神经元 148
7.1.2 激活函数 148
7.1.3 网络拓扑 151
7.1.4 用后向传播训练神经网络 153
7.2 用人工神经网络对混凝土的强度进行建模 154
7.2.1 第1步——收集数据 154
7.2.2 第2步——探索和准备数据 155
7.2.3 第3步——基于数据训练模型 156
7.2.4 第4步——评估模型的性能 158
7.2.5 第5步——提高模型的性能 159
7.3 理解支持向量机 160
7.3.1 用超平面分类 161
7.3.2 寻找最大间隔 161
7.3.3 对非线性空间使用核函数 164
7.4 用支持向量机进行光学字符识别 165
7.4.1 第1步——收集数据 166
7.4.2 第2步——探索和准备数据 166
7.4.3 第3步——基于数据训练模型 167
7.4.4 第4步——评估模型的性能 169
7.4.5 第5步——提高模型的性能 170
7.5 总结 171
第8章 探寻模式——基于关联规则的购物篮分析 172
8.1 理解关联规则 172
8.2 例子——用关联规则确定经常一起购买的食品杂货 176
8.2.1 第1步——收集数据 176
8.2.2 第2步——探索和准备数据 177
8.2.3 第3步——基于数据训练模型 183
8.2.4 第4步——评估模型的性能 184
8.2.5 第5步——提高模型的性能 187
8.3 总结 189
第9章 寻找数据的分组——k均值聚类 191
9.1 理解聚类 191
9.1.1 聚类——一种机器学习任务 192
9.1.2 k均值聚类算法 193
9.1.3 用k均值聚类探寻青少年市场细分 198
9.1.4 第1步——收集数据 198
9.1.5 第2步——探索和准备数据 199
9.1.6 第3步——基于数据训练模型 202
9.1.7 第4步——评估模型的性能 204
9.1.8 第5步——提高模型的性能 206
9.2 总结 207
第10章 模型性能的评价 208
10.1 度量分类方法的性能 208
10.1.1 在R中处理分类预测数据 209
10.1.2 深入探讨混淆矩阵 211
10.1.3 使用混淆矩阵度量性能 212
10.1.4 准确度之外的其他性能评价指标 214
10.1.5 性能权衡的可视化 221
10.2 评估未来的性能 224
10.2.1 保持法 225
10.2.2 交叉验证 226
10.2.3 自助法抽样 229
10.3 总结 229
第11章 提高模型的性能 231
11.1 调整多个模型来提高性能 231
11.2 使用元学习来提高模型的性能 239
11.2.1 理解集成学习 239
11.2.2 bagging 241
11.2.3 boosting 243
11.2.4 随机森林 244
11.3 总结 248
第12章 其他机器学习主题 249
12.1 分析专用数据 250
12.1.1 用RCurl添加包从网上获取数据 250
12.1.2 用XML添加包读/写XML格式数据 250
12.1.3 用rjson添加包读/写JSON 251
12.1.4 用xlsx添加包读/写Microsoft Excel电子表格 251
12.1.5 生物信息学数据 251
12.1.6 社交网络数据和图数据 252
12.2 提高R语言的性能 252
12.2.1 处理非常大的数据集 253
12.2.2 使用并行处理来加快学习过程 254
12.2.3 GPU计算 257
12.2.4 部署最优的学习算法 257
12.3 总结 258
· · · · · · (收起)
读后感
R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本...
R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本...
R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本...
R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本...
R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本概念,而不是故弄玄虚讲一大堆专业名词,让人望而生畏。推荐!R基本熟悉了,很适合初学者入门的书。一开始讲基本...
用户评价
总的来说,这本书给我的感受是,它不仅仅是一本技术参考书,更像是一份凝结了作者多年经验和深刻思考的“知识遗产”。它的结构设计非常巧妙,无论是作为大学高年级或研究生阶段的教材,还是作为从业人员的案头工具书,都非常合适。我尤其喜欢书后附带的“进一步阅读推荐”列表,那些推荐的书目和论文都极具价值,体现了作者深厚的学术视野和对领域前沿的把握能力。这本书的价值在于,它提供了一个完整的知识地图,不仅告诉你‘是什么’和‘怎么做’,更重要的是告诉你‘为什么’以及‘未来可能往哪里去’。读完这本书,我感觉自己对整个领域都有了一个更为宏大和清晰的认知,它成功地为我的学习和职业发展指明了一个更加坚实和开阔的方向。这是一本值得反复研读、常读常新的佳作。
这本书的装帧设计真是让人眼前一亮,封面采用了深邃的蓝色调,搭配简洁有力的白色字体,给人一种专业又不失典雅的感觉。拿在手里沉甸甸的,纸张的质感也非常出色,内页排版清晰,字体大小适中,阅读起来非常舒适。我尤其欣赏作者在章节布局上的用心,从基础理论的梳理到复杂应用的剖析,层层递进,逻辑严密。特别是前几章对核心概念的阐述,深入浅出,即便是初学者也能快速抓住要点,构建起扎实的知识框架。书中的图表制作精美,很多复杂的数学模型和算法流程图都通过直观的视觉方式呈现出来,极大地降低了理解难度。我感觉作者在内容的组织上花费了大量心血,力求在保证学术深度的同时,也能兼顾读者的阅读体验。对于任何希望系统学习这方面知识的人来说,这本书的物理形态本身就是一种享受,让人忍不住想沉浸其中,一探究竟。
我对这本书的实战应用部分的评价是,简直是“干货满满,诚意十足”。作者并没有停留在理论的空中楼阁,而是紧密结合了当前行业内最前沿和最主流的技术栈。书中对多个经典案例的分析细致入微,从数据预处理到模型部署的全过程都有详尽的步骤解析和代码示例。我特别关注了其中关于大规模数据处理的章节,作者介绍的几种并行计算框架的使用心得和陷阱规避技巧,比我之前看的几本教程都要深入和实用得多。代码块的注释非常到位,很多关键性的逻辑判断都被标注得清清楚楚,这对于我们这些需要快速上手解决实际问题的工程师来说,无疑是巨大的帮助。我甚至发现了一些我在实际工作中尝试多次都未能完美解决的问题,在这本书里找到了清晰的思路和可行的解决方案。读完这部分内容,我感觉自己的工具箱一下子充实了许多,信心也大增,迫不及待想把学到的知识应用到手头的工作中去检验效果。
深入研究之后,我发现这本书在理论深度上达到了一个非常高的水准,它成功地在“科普的易懂性”和“学术的严谨性”之间找到了一个绝佳的平衡点。对于那些希望从“会用”迈向“精通”的人来说,这本书提供的理论支撑是至关重要的。它没有回避那些晦涩难懂的数学证明和严格的收敛性分析,而是用一种系统化的方式,将这些基础打牢。我特别欣赏作者处理不同理论流派时所展现出的客观和公正态度,没有过度推崇某一种特定技术,而是全面分析了它们的适用场景和内在局限性。这使得读者在面对实际问题时,能够基于扎实的理论基础做出最合理的选择,而不是盲目追随技术热点。可以说,这本书是为那些不满足于停留在“调包侠”层面,渴望真正理解技术底层逻辑的进阶学习者量身定制的。
这本书的叙述风格非常独特,它不像传统教材那样板着脸孔,而是带着一种学者的热情和对未知领域探索的兴奋感。作者在论述复杂问题时,常常会穿插一些富有洞察力的个人见解和历史背景介绍,使得冰冷的知识点瞬间变得有血有肉、充满生命力。例如,在介绍某个里程碑式的算法时,作者会追溯其思想的起源,对比不同学派的争论,这种宏观的视野极大地拓宽了我的知识边界,让我明白这些技术是如何一步步发展演变至今的。更难得的是,作者的语言既保持了学术的严谨性,又不失一种幽默和亲和力,读起来完全没有枯燥感。有时候读到精妙之处,甚至会让人会心一笑,仿佛正在和一位经验丰富的前辈进行一次深入的下午茶交流。这种亦师亦友的写作方式,让我对这个领域产生了更深层次的敬畏和热爱。
或许人们思想的纷争,不是因为算法,而是样本。算法是公平的,而样本不是。知识是公平的,而经验不是。世界之大,我们每个人脑海中的样本量都太小了。纵使所谓阅人无数,读书万卷,依然可能会得出有偏估计。。。我就觉得决策树,不如随机森林啊。
这本是15年翻译的13年初版,还有一本17年翻译的15年2版。原理讲解很通俗。只需要高中数学基础就能看懂。这本书介绍了概念就奔实战去了。就是只说了是什么和怎么样,屏蔽了算法如何实现相关的数学基础和细节。直接丢给你一些已经成熟的程序包,只要知道接口就能在实例上应用。初学者可以在操练中入门。
这本书非常适合有点统计基础,对机器学习感兴趣的同学学习R语言,尤其是初学者,每一章都有一个实际案例,而且有详细代码,可以跟着一起操作一遍,真的很不错~
原理基本上是大白话,浅显易懂,浅尝辄止~这两个词一个意思。关注操作就好了嘛
入门读物,案例分析限于篇幅不够深入