目 录
第1章 概述 1
1.1 数据挖掘的产生与发展 2
1.1.1 数据挖掘概念的提出 2
1.1.2 数据挖掘的发展历程 3
1.1.3 当前热点与未来趋势 6
1.2 数据挖掘过程 9
1.2.1 Fayyad过程模型 9
1.2.2 CRISP-DM过程模型 10
1.3 数据挖掘功能与使用技术 20
1.3.1 数据挖掘功能 20
1.3.2 数据挖掘使用技术 21
1.4 数据挖掘的核心利器:机器学习 22
1.4.1 机器学习分类 22
1.4.2 机器学习与数据挖掘的关系 23
1.5 数据挖掘应用 24
1.5.1 金融领域的数据挖掘 24
1.5.2 电信领域的数据挖掘 25
1.5.3 零售与电子商务领域的数据挖掘 25
1.5.4 政府政务领域的数据挖掘 26
1.5.5 医疗领域的数据挖掘 26
1.5.6 科学领域的数据挖掘 26
1.6 练习与拓展 27
第2章 数据与数据平台 28
2.1 数据类型 29
2.1.1 数据形态与数据类型 29
2.1.2 数据环境与数据类型 38
2.2 关系型数据库 39
2.2.1 关系型数据库概述 39
2.2.2 关系型数据库管理系统 40
2.3 传统数据仓库 41
2.3.1 概念与特点 41
2.3.2 数据集市 43
2.3.3 元数据与数据粒度 44
2.3.4 逻辑模型 44
2.4 NoSQL数据库 47
2.4.1 键值数据库 47
2.4.2 文档数据库 48
2.4.3 列族数据库 50
2.4.4 图数据库 52
2.5 大数据平台 53
2.5.1 数据采集层 54
2.5.2 数据存储层 57
2.5.3 数据处理与分析层 59
2.6 练习与拓展 62
第3章 数据预处理与特征工程 64
3.1 数据预处理与特征工程概述 65
3.1.1 原始数据中存在的问题 65
3.1.2 数据预处理与特征工程的主要任务 67
3.2 数据清洗 68
3.2.1 缺失数据处理 68
3.2.2 异常数据处理 70
3.3 数据集成与平衡 71
3.3.1 数据集成 71
3.3.2 数据平衡 73
3.4 特征构造与变换 74
3.4.1 特征构造 74
3.4.2 特征变换 78
3.5 数据归约 80
3.5.1 属性的归约 80
3.5.2 记录的归约 82
3.5.3 数值的归约 83
3.6 练习与拓展 84
第4章 关联分析 85
4.1 关联分析概述 86
4.1.1 关联分析的基本概念 86
4.1.2 强关联规则产生的基本过程 88
4.2 Apriori算法 90
4.2.1 Apriori性质 90
4.2.2 Apriori算法过程描述 91
4.2.3 Apriori算法产生频繁项集示例 92
4.3 关联规则的评价:提升度 95
4.3.1 强关联规则不一定是有趣的规则 95
4.3.2 基于提升度评价强关联规则 96
4.3.3 基于提升度的强关联规则提取 97
4.4 R实践案例:购物篮分析 99
4.4.1 产生稀疏矩阵 100
4.4.2 了解数据概况 100
4.4.3 可视化数据 101
4.4.4 挖掘关联规则 105
4.4.5 可视化关联规则 107
4.5 Python实践案例:影片推荐 112
4.5.1 数据集初探 112
4.5.2 变量探索 113
4.5.3 影片词云分析 115
4.5.4 数据预处理 116
4.5.5 关联规则挖掘 117
4.5.6 为用户推荐影片 118
4.6 练习与拓展 119
第5章 决策树 120
5.1 决策树概述 121
5.1.1 决策树分析的基本概念 121
5.1.2 决策树构建的基本过程 123
5.2 ID3算法 124
5.2.1 信息论的基本概念 124
5.2.2 ID3算法基本原理 125
5.2.3 使用ID3算法建立决策树 126
5.3 C5.0算法 129
5.3.1 C5.0算法决策树生长 129
5.3.2 C5.0算法决策树修剪 134
5.4 CART算法 136
5.4.1 CART分类树生长 136
5.4.2 CART回归树生长 141
5.4.3 CART剪枝 143
5.5 R实践案例:客户信用风险预测 144
5.5.1 数据探索 144
5.5.2 数据分区 153
5.5.3 模型训练与评估 153
5.5.4 使用代价矩阵调整模型 156
5.6 Python实践案例:糖尿病预测 157
5.6.1 数据读取与类型转换 157
5.6.2 数据探索 158
5.6.3 数据预处理 163
5.6.4 模型训练与评估 164
5.7 练习与拓展 166
第6章 集成学习 167
6.1 集成学习概述 168
6.1.1 集成学习的基本概念 168
6.1.2 集成学习的主要类型 169
6.2 随机森林 171
6.2.1 随机森林的构建过程 171
6.2.2 随机森林的OOB估计 172
6.2.3 随机森林中的特征重要性 172
6.3 AdaBoost 173
6.3.1 AdaBoost二分类算法 174
6.3.2 AdaBoost二分类问题示例 175
6.3.3 AdaBoost的正则化 178
6.4 Gradient Boosting之GBDT 178
6.4.1 Gradient Boosting基本思想 179
6.4.2 GBDT算法 180
6.4.3 GBDT回归问题示例 181
6.5 R实践案例:药物预测 186
6.5.1 数据读取与类型转换 186
6.5.2 探索性分析 187
6.5.3 随机森林模型构建与评估 191
6.6 Python实践案例:银行客户类别预测 195
6.6.1 数据读取与预处理 196
6.6.2 探索性分析 199
6.6.3 模型构建与评估 200
6.7 练习与拓展 205
第7章 贝叶斯分类 206
7.1 贝叶斯分类概述 207
7.1.1 贝叶斯定理 207
7.1.2 贝叶斯网络 207
7.1.3 贝叶斯分类的基本过程 208
7.2 朴素贝叶斯分类 209
7.2.1 朴素贝叶斯分类原理 209
7.2.2 朴素贝叶斯分类示例 212
7.3 零概率问题:拉普拉斯平滑 214
7.3.1 拉普拉斯平滑法 214
7.3.2 拉普拉斯平滑法示例 215
7.4 TAN贝叶斯分类 216
7.4.1 TAN贝叶斯网络结构 216
7.4.2 TAN贝叶斯分类过程 216
7.5 R实践案例:蘑菇分类 218
7.5.1 数据读取与预处理 219
7.5.2 探索性分析 220
7.5.3 模型构建与评估 223
7.6 Python实践案例:垃圾短信预测 225
7.6.1 数据集初探 225
7.6.2 文本预处理 226
7.6.3 词云分析 227
7.6.4 建立文档—词条矩阵 229
7.6.5 朴素贝叶斯分类模型构建与评估 230
7.7 练习与拓展 233
第8章 神经网络与深度学习 234
8.1 神经网络与深度学习概述 235
8.1.1 生物神经元与人工神经元 235
8.1.2 激活函数 236
8.1.3 神经网络的拓扑结构 239
8.2 BP神经网络 241
8.2.1 BP神经网络的学习过程 241
8.2.2 BP算法描述 246
8.2.3 BP算法示例 247
8.2.4 常用的梯度下降法 249
8.3 卷积神经网络 250
8.3.1 卷积层 251
8.3.2 激活层 254
8.3.3 池化层 254
8.3.4 全连接层 255
8.4 R实践案例:白葡萄酒品质预测 256
8.4.1 数据探索 257
8.4.2 数据转换与分区 260
8.4.3 模型构建与评价 260
8.5 Python实践案例:服饰图片识别 265
8.5.1 Fashion-MNIST数据集加载及概况分析 265
8.5.2 预处理与可视化 266
8.5.3 CNN模型构建与编译 268
8.5.4 模型训练与评估 269
8.5.5 可视化卷积层特征图 271
8.6 练习与拓展 274
参考文献 276
