第1章 机器学习简介 1
1.1 机器学习的起源 1
1.2 机器学习的使用与滥用 3
1.2.1 机器学习的成功使用 3
1.2.2 机器学习的限制 4
1.2.3 机器学习的伦理方面 5
1.3 机器如何学习 6
1.3.1 数据存储 7
1.3.2 抽象化 7
1.3.3 一般化 9
1.3.4 评估 10
1.4 实践中的机器学习 11
1.4.1 输入数据的类型 11
1.4.2 机器学习算法的类型 12
1.4.3 为输入数据匹配算法 14
1.5 使用R进行机器学习 15
1.5.1 安装R添加包 15
1.5.2 载入和卸载R添加包 16
1.6 总结 16
第2章 数据的管理和理解 18
2.1 R数据结构 18
2.1.1 向量 18
2.1.2 因子 20
2.1.3 列表 21
2.1.4 数据框 23
2.1.5 矩阵和数组 25
2.2 用R管理数据 27
2.2.1 保存、载入和移除R数据结构 27
2.2.2 用CSV文件导入和保存数据 28
2.3 探索和理解数据 29
2.3.1 探索数据的结构 29
2.3.2 探索数值变量 30
2.3.3 探索分类变量 38
2.3.4 探索变量之间的关系 40
2.4 总结 43
第3章 懒惰学习——使用近邻分类 44
3.1 理解近邻分类 44
3.1.1 kNN算法 45
3.1.2 为什么kNN算法是懒惰的 50
3.2 例子——用KNN算法诊断乳腺癌 51
3.2.1 第1步——收集数据 51
3.2.2 第2步——探索和准备数据 52
3.2.3 第3步——基于数据训练模型 55
3.2.4 第4步——评估模型的性能 56
3.2.5 第5步——提高模型的性能 57
3.3 总结 59
第4章 概率学习——朴素贝叶斯分类 60
4.1 理解朴素贝叶斯 60
4.1.1 贝叶斯方法的基本概念 61
4.1.2 朴素贝叶斯算法 65
4.2 例子——基于贝叶斯算法的手机垃圾短信过滤 69
4.2.1 第1步——收集数据 69
4.2.2 第2步——探索和准备数据 70
4.2.3 第3步——基于数据训练模型 81
4.2.4 第4步——评估模型的性能 82
4.2.5 第5步——提高模型的性能 83
4.3 总结 84
第5章 分而治之——应用决策树和规则进行分类 85
5.1 理解决策树 85
5.1.1 分而治之 86
5.1.2 C5.0决策树算法 89
5.2 例子——使用C5.0决策树识别高风险银行贷款 91
5.2.1 第1步——收集数据 92
5.2.2 第2步——探索和准备数据 92
5.2.3 第3步——基于数据训练模型 94
5.2.4 第4步——评估模型的性能 97
5.2.5 第5步——提高模型的性能 97
5.3 理解分类规则 101
5.3.1 独立而治之 101
5.3.2 1R算法 103
5.3.3 RIPPER算法 104
5.3.4 来自决策树的规则 105
5.3.5 什么使决策树和规则贪婪 106
5.4 例子——应用规则学习算法识别有毒的蘑菇 108
5.4.1 第1步——收集数据 108
5.4.2 第2步——探索和准备数据 108
5.4.3 第3步——基于数据训练模型 109
5.4.4 第4步——评估模型的性能 111
5.4.5 第5步——提高模型的性能 112
5.5 总结 114
第6章 预测数值型数据——回归方法 115
6.1 理解回归 115
6.1.1 简单线性回归 117
6.1.2 普通最小二乘估计 119
6.1.3 相关性 120
6.1.4 多元线性回归 121
6.2 例子——应用线性回归预测医疗费用 124
6.2.1 第1步——收集数据 124
6.2.2 第2步——探索和准备数据 125
6.2.3 第3步——基于数据训练模型 129
6.2.4 第4步——评估模型的性能 131
6.2.5 第5步——提高模型的性能 132
6.3 理解回归树和模型树 134
6.4 例子——用回归树和模型树估计葡萄酒的质量 136
6.4.1 第1步——收集数据 137
6.4.2 第2步——探索和准备数据 137
6.4.3 第3步——基于数据训练模型 139
6.4.4 第4步——评估模型的性能 142
6.4.5 第5步——提高模型的性能 143
6.5 总结 145
第7章 黑箱方法——神经网络和支持向量机 147
7.1 理解神经网络 147
7.1.1 从生物神经元到人工神经元 148
7.1.2 激活函数 149
7.1.3 网络拓扑 151
7.1.4 用后向传播训练神经网络 154
7.2 例子——用人工神经网络对混凝土的强度进行建模 155
7.2.1 第1步——收集数据 155
7.2.2 第2步——探索和准备数据 156
7.2.3 第3步——基于数据训练模型 157
7.2.4 第4步——评估模型的性能 159
7.2.5 第5步——提高模型的性能 159
7.3 理解支持向量机 161
7.3.1 用超平面分类 161
7.3.2 对非线性空间使用核函数 164
7.4 例子——用支持向量机进行光学字符识别 166
7.4.1 第1步——收集数据 166
7.4.2 第2步—探索和准备数据 167
7.4.3 第3步——基于数据训练模型 168
7.4.4 第4步——评估模型的性能 170
7.4.5 第5步——提高模型的性能 171
7.5 总结 172
第8章 探寻模式——基于关联规则的购物篮分析 173
8.1 理解关联规则 173
8.1.1 用于关联规则学习的Apriori算法 174
8.1.2 度量规则兴趣度——支持度和置信度 175
8.1.3 用Apriori原则建立规则 176
8.2 例子——用关联规则确定经常一起购买的食品杂货 177
8.2.1 第1步——收集数据 177
8.2.2 第2步——探索和准备数据 178
8.2.3 第3步——基于数据训练模型 183
8.2.4 第4步——评估模型的性能 185
8.2.5 第5步——提高模型的性能 187
8.3 总结 190
第9章 寻找数据的分组——k均值聚类 191
9.1 理解聚类 191
9.1.1 聚类——一种机器学习任务 192
9.1.2 k均值聚类算法 193
9.2 例子——用k均值聚类探寻青少年市场细分 198
9.2.1 第1步——收集数据 199
9.2.2 第2步——探索和准备数据 199
9.2.3 第3步——基于数据训练模型 203
9.2.4 第4步——评估模型的性能 205
9.2.5 第5步——提高模型的性能 207
9.3 总结 208
第10章 模型性能的评价 210
10.1 度量分类方法的性能 210
10.1.1 在R中处理分类预测数据 211
10.1.2 深入探讨混淆矩阵 213
10.1.3 使用混淆矩阵度量性能 214
10.1.4 准确率之外的其他性能度量指标 216
10.1.5 性能权衡的可视化 223
10.2 评估未来的性能 226
10.3 总结 232
第11章 提高模型的性能 233
11.1 调整多个模型来提高性能 233
11.2 使用元学习来提高模型的性能 241
11.2.1 理解集成学习 241
11.2.2 bagging 243
11.2.3 Boosting 245
11.2.4 随机森林 247
11.3 总结 251
第12章 其他机器学习主题 253
12.1 分析专用文件和数据库 253
12.1.1 读/写Excel、SAS、SPSS和Stata文件 254
12.1.2 查询SQL数据库中的数据 254
12.2 处理在线数据和服务 255
12.2.1 下载网页的所有文本 256
12.2.2 从网页爬取数据 257
12.3 处理特定领域的数据 263
12.3.1 分析生物信息学数据 264
12.3.2 分析和可视化网络数据 264
12.4 提高R语言的性能 267
12.4.1 处理非常大的数据集 267
12.4.2 使用并行处理来加快学习过程 271
12.4.3 GPU计算 276
12.4.4 部署优化的学习算法 277
12.5 总结 278