第1章 机器学习和R语言入门 1
1.1 了解发展历程 1
1.1.1 统计学习 2
1.1.2 机器学习 2
1.1.3 人工智能 3
1.1.4 数据挖掘 3
1.1.5 数据科学 4
1.2 概率与统计 5
1.2.1 计数和概率的定义 5
1.2.2 事件和关系 7
1.2.3 随机性、概率和分布 9
1.2.4 置信区间和假设检验 9
1.3 R语言入门 13
1.3.1 基本组成部分 13
1.3.2 R语言的数据结构 14
1.3.3 子集处理 15
1.3.4 函数和Apply系列 17
1.4 机器学习过程工作流 19
1.4.1 计划 20
1.4.2 探索 20
1.4.3 构建 20
1.4.4 评估 20
1.5 其他技术 21
1.6 小结 21
第2章 数据准备和探索 22
2.1 规划数据收集 23
2.1.1 变量类型 23
2.1.2 数据格式 24
2.1.3 数据源的类型 29
2.2 初始数据分析 30
2.2.1 初步印象 30
2.2.2 把多个数据源组织到一起 32
2.2.3 整理数据 34
2.2.4 补充更多信息 37
2.2.5 重塑 38
2.3 探索性数据分析 38
2.3.1 摘要统计量 39
2.3.2 矩 42
2.4 案例研究:信用卡欺诈 46
2.4.1 数据导入 46
2.4.2 数据变换 47
2.4.3 数据探索 48
2.5 小结 50
第3章 抽样与重抽样技术 51
3.1 介绍抽样技术 51
3.2 抽样的术语 52
3.2.1 样本 52
3.2.2 抽样分布 52
3.2.3 总群体的均值和方差 53
3.2.4 样本均值和方差 53
3.2.5 汇总的均值和方差 53
3.2.6 抽样点 53
3.2.7 抽样误差 54
3.2.8 抽样率 54
3.2.9 抽样偏误 54
3.2.10 无放回的抽样 54
3.2.11 有放回的抽样 55
3.3 信用卡欺诈:总群体的统计量 55
3.3.1 数据描述 55
3.3.2 总群体的均值 56
3.3.3 总群体的方差 56
3.3.4 汇总的均值和方差 56
3.4 抽样在业务上的意义 59
3.5 概率和非概率抽样 60
3.6 关于抽样分布的统计理论 61
3.6.1 大数定律 62
3.6.2 中心极限定理 64
3.7 概率抽样技术 67
3.7.1 总群体的统计量 67
3.7.2 简单随机抽样 70
3.7.3 系统性随机抽样 75
3.7.4 分层随机抽样 78
3.7.5 聚类抽样 83
3.7.6 自助抽样 88
3.8 蒙特卡罗方法:接受-拒绝 93
3.9 小结 95
第4章 R语言里的数据可视化 96
4.1 ggplot2组件包简介 97
4.2 世界经济发展指标 97
4.3 折线图 97
4.4 堆叠柱状图 102
4.5 散点图 106
4.6 箱形图 107
4.7 直方图和密度图 109
4.8 饼图 113
4.9 相关图 114
4.10 热点图 116
4.11 气泡图 117
4.12 瀑布图 120
4.13 系统树图 122
4.14 关键字云 124
4.15 桑基图 126
4.16 时间序列图 127
4.17 队列图 129
4.18 空间图 130
4.19 小结 133
第5章 特征工程 135
5.1 特征工程简介 135
5.2 了解工作数据 136
5.2.1 数据摘要 137
5.2.2 因变量的属性 137
5.2.3 特征的可用性:连续型或分类型 140
5.2.4 设置数据的假设 141
5.3 特征排名 141
5.4 变量子集的选择 144
5.4.1 过滤器方法 145
5.4.2 包装器方法 148
5.4.3 嵌入式方法 154
5.5 主成分分析 158
5.6 小结 161
第6章 机器学习理论和实践 162
6.1 机器学习的类型 163
6.1.1 有监督学习 164
6.1.2 无监督学习 164
6.1.3 半监督学习 165
6.1.4 强化学习 165
6.2 机器学习算法的类别 165
6.3 实际环境的数据集 168
6.3.1 房产售价 168
6.3.2 购买偏好 169
6.3.3 Twitter订阅和文章 169
6.3.4 乳腺癌 170
6.3.5 购物篮 170
6.3.6 亚马逊美食评论 170
6.4 回归分析 171
6.5 相关分析 172
6.5.1 线性回归 174
6.5.2 简单线性回归 175
6.5.3 多元线性回归 177
6.5.4 模型诊断:线性回归 180
6.5.5 多项回归 190
6.5.6 逻辑回归 193
6.5.7 logit变换 194
6.5.8 几率比 194
6.5.9 模型诊断:逻辑回归 200
6.5.10 多项逻辑回归 208
6.5.11 广义线性模型 211
6.5.12 结论 212
6.6 支持向量机 213
6.6.1 线性SVM 214
6.6.2 二元SVM分类模型 214
6.6.3 多类别SVM 216
6.6.4 结论 217
6.7 决策树 217
6.7.1 决策树的类型 218
6.7.2 决策指标 219
6.7.3 决策树学习方法 221
6.7.4 集成树 235
6.7.5 结论 241
6.8 朴素贝叶斯方法 241
6.8.1 条件概率 241
6.8.2 贝叶斯定理 241
6.8.3 先验概率 242
6.8.4 后验概率 242
6.8.5 似然和边际似然 242
6.8.6 朴素贝叶斯方法 243
6.8.7 结论 247
6.9 聚类分析 247
6.9.1 聚类方法简介 248
6.9.2 聚类算法 248
6.9.3 内部评估 256
6.9.4 外部评估 257
6.9.5 结论 259
6.10 关联规则挖掘 259
6.10.1 关联概念简介 259
6.10.2 规则挖掘算法 261
6.10.3 推荐算法 267
6.10.4 结论 273
6.11 人工神经网络 273
6.11.1 人类认知学习 273
6.11.2 感知器 275
6.11.3 Sigmoid神经元 276
6.11.4 神经网络的体系架构 277
6.11.5 有监督与无监督的神经网络 278
6.11.6 神经网络的学习算法 279
6.11.7 前馈反向传播 281
6.11.8 结论 286
6.12 文本挖掘方法 286
6.12.1 文本挖掘简介 287
6.12.2 文本摘要 288
6.12.3 TF-IDF 289
6.12.4 词性标注 291
6.12.5 关键字云 295
6.12.6 文本分析:Microsoft Cognitive Services 295
6.12.7 结论 304
6.13 在线机器学习算法 304
6.13.1 模糊C均值聚类 305
6.13.2 结论 308
6.14 构建模型的核对清单 308
6.15 小结 308
第7章 机器学习模型的评估 309
7.1 数据集 309
7.1.1 房产售价 309
7.1.2 购买偏好 311
7.2 模型性能和评估入门 312
7.3 模型性能评估的目标 313
7.4 总群体的稳定性指数 314
7.5 连续型输出的模型评估 318
7.5.1 平均绝对误差 320
7.5.2 均方根误差 321
7.5.3 R2 322
7.6 离散型输出的模型评估 325
7.6.1 分类矩阵 325
7.6.2 灵敏度和特异性 329
7.6.3 ROC曲线下的面积 330
7.7 概率技术 333
7.7.1 K折交叉验证 333
7.7.2 自助抽样 335
7.8 Kappa误差指标 336
7.9 小结 339
第8章 模型性能改进 340
8.1 Caret组件包概述 341
8.2 超参数简介 343
8.3 超参数优化 345
8.3.1 人工搜索 346
8.3.2 人工网格搜索 348
8.3.3 自动网格搜索 349
8.3.4 最优搜索 351
8.3.5 随机搜索 353
8.3.6 自定义搜索 354
8.4 偏误和方差权衡 357
8.5 集成学习简介 360
8.5.1 投票集成 360
8.5.2 集成学习中的高级方法 361
8.6 在R语言里演示集成技术 364
8.6.1 装袋树 364
8.6.2 决策树的梯度增强 366
8.6.3 混合knn和rpart 369
8.6.4 利用caretEnsemble进行堆叠 370
8.7 高级主题:机器学习模型的贝叶斯优化 374
8.8 小结 379
第9章 时间序列模型 380
9.1 时间序列的组成部分 380
9.2 平稳性检验 383
9.3 ACF和AR模型 386
9.4 PACF和MA模型 388
9.5 ARIMA模型 391
9.6 具有AR误差的线性回归 397
9.7 小结 400
第10章 可扩展机器学习和相关技术 402
10.1 分布式处理和存储 402
10.1.1 GFS 403
10.1.2 MapReduce 404
10.1.3 R语言里的并行执行 404
10.2 Hadoop生态系统 407
10.2.1 MapReduce 408
10.2.2 Hive 411
10.2.3 Apache Pig 414
10.2.4 HBase 417
10.2.5 Spark 418
10.3 在R语言环境下用Spark进行机器学习 419
10.3.1 设置环境变量 419
10.3.2 初始化Spark会话 420
10.3.3 加载数据并运行预处理 420
10.3.4 创建SparkDataFrame 421
10.3.5 构建机器学习模型 421
10.3.6 对测试数据进行预测 422
10.3.7 终止SparkR会话 423
10.4 在R语言里利用H2O进行机器学习 423
10.4.1 安装组件包 424
10.4.2 H2O集群的初始化 424
10.5 小结 425
第11章 用Keras和TensorFlow进行深度学习 427
11.1 深度学习简介 427
11.2 深度学习架构 428
11.2.1 卷积神经网络 428
11.2.2 递归神经网络 429
11.2.3 生成对抗网络 430
11.3 深度学习的工具集 431
11.3.1 高级库 431
11.3.2 后端引擎或框架 431
11.3.3 硬件能力 432
11.3.4 编程语言的选择 432
11.3.5 云基础架构 432
11.4 用例:识别Quora中的重复问题 432
11.4.1 环境设置 432
11.4.2 数据预处理 433
11.4.3 基准模型 434
11.4.4 Siamese递归架构 435
11.4.5 Keras模型 437
11.4.6 模型的摘要 437
11.4.7 验证样本 438
11.4.8 训练模型 438
11.4.9 保存模型 439
11.4.10 模型性能 439
11.4.11 进行预测 440
11.4.12 预测示例 440
11.5 小结 441