第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