第1篇基础篇
第1章数据挖掘概述 …………………………………………………………………………… 2
1.1什么是数据挖掘 ……………………………………………………………………… 2
1.1.1数据、信息、知识和智慧 ……………………………………………………… 2
1.1.2数据挖掘的定义 ……………………………………………………………… 3
1.1.3数据挖掘的功能 ……………………………………………………………… 3
1.1.4数据挖掘的发展简史 ………………………………………………………… 4
1.2数据挖掘的基本步骤及方法 ………………………………………………………… 4
1.2.1数据挖掘的基本步骤 ………………………………………………………… 4
1.2.2数据挖掘的任务 ……………………………………………………………… 5
1.2.3数据挖掘的分析方法 ………………………………………………………… 6
1.3数据挖掘与统计学的关系 …………………………………………………………… 6
1.3.1数据挖掘与统计学的联系 …………………………………………………… 6
1.3.2数据挖掘与统计学的区别 …………………………………………………… 6
1.4数据挖掘与机器学习的关系 ………………………………………………………… 7
1.4.1数据挖掘与机器学习的联系 ………………………………………………… 7
1.4.2数据挖掘与机器学习的区别 ………………………………………………… 7
1.5数据挖掘的十大经典算法 …………………………………………………………… 8
1.6数据挖掘的典型应用 ………………………………………………………………… 9
习题 1 ……………………………………………………………………………………… 10
第2章 Python数据分析基础 ………………………………………………………………… 11
2.1 Python程序概述 …………………………………………………………………… 11
2.1.1基础数据类型 ……………………………………………………………… 11
2.1.2变量和赋值 ………………………………………………………………… 11
2.1.3操作符和表达式 …………………………………………………………… 11
2.1.4字符串 ……………………………………………………………………… 12
2.1.5流程控制 …………………………………………………………………… 14
2.1.6用户函数 …………………………………………………………………… 16
2.1.7 lambda函数 ………………………………………………………………… 16
2.2 Python常用的内置数据结构 ……………………………………………………… 16
2.2.1列表 ………………………………………………………………………… 17
2.2.2元组 ………………………………………………………………………… 19
2.2.3字典 ………………………………………………………………………… 20
2.2.4集合 ………………………………………………………………………… 21
2.3正则表达式 …………………………………………………………………………… 22
2.3.1概述 ………………………………………………………………………… 22
2.3.2常用方法 …………………………………………………………………… 23
2.3.3提取网页中的信息 ………………………………………………………… 26
2.4文件的操作 …………………………………………………………………………… 26
2.4.1文件的打开与关闭 ………………………………………………………… 26
2.4.2文件的读 /写操作 …………………………………………………………… 27
2.4.3文件的其他操作 …………………………………………………………… 28
习题 2 ……………………………………………………………………………………… 29
第3章 Python数据挖掘中的常用模块 ……………………………………………………… 31
3.1 NumPy模块 ………………………………………………………………………… 31
3.1.1 NumPy数据类型 ………………………………………………………… 31
3.1.2 NumPy基本运算 ………………………………………………………… 33
3.1.3生成随机数的常用函数 …………………………………………………… 34
3.1.4对象转换 …………………………………………………………………… 36
3.1.5数组元素和切片 …………………………………………………………… 37
3.2 Pandas模块 ………………………………………………………………………… 38
3.2.1 Pandas中的数据结构 ……………………………………………………… 38
3.2.2 DataFrame的基本属性 …………………………………………………… 39
3.2.3 DataFrame的常用方法 …………………………………………………… 40
3.2.4 DataFrame的数据查询与编辑 …………………………………………… 40
3.2.5 Pandas数据的四则运算 …………………………………………………… 43
3.2.6函数变换 …………………………………………………………………… 43
3.2.7排序 ………………………………………………………………………… 44
3.2.8汇总与统计 ………………………………………………………………… 45
3.2.9数据的分组与统计 ………………………………………………………… 46
3.2.10 Pandas数据的读取与存储 ……………………………………………… 47
3.3 Matplotlib图表绘制基础 …………………………………………………………… 49
3.3.1 Matplotlib简介 …………………………………………………………… 49
3.3.2 Matplotlib绘图基础 ……………………………………………………… 49
3.3.3使用 Matplotlib简单绘图 ………………………………………………… 51
3.3.4文本注解 …………………………………………………………………… 58
3.4 Scikit-learn ………………………………………………………………………… 61
3.4.1 Scikit-learn的主要功能 …………………………………………………… 61
3.4.2 Scikit-learn自带的小规模数据集 ………………………………………… 61
3.4.3使用 Scikit-learn生成数据集 ……………………………………………… 63
3.5股票数据的简单分析 ………………………………………………………………… 67
3.5.1抓取股票数据 ……………………………………………………………… 67
3.5.2股票数据的各指标折线图 ………………………………………………… 68
3.5.3各股票的 5分钟涨幅柱状图 ……………………………………………… 69
3.5.4股票各指标之间的关系对比 ……………………………………………… 70
习题 3 ……………………………………………………………………………………… 71
第2篇数据预处理篇
第4章数据的描述与可视化 ………………………………………………………………… 74
4.1概述 …………………………………………………………………………………… 74
4.1.1数据的描述 ………………………………………………………………… 74
4.1.2数据的可视化 ……………………………………………………………… 74
4.2数据对象与属性类型 ………………………………………………………………… 75
4.2.1数据对象 …………………………………………………………………… 75
4.2.2属性与属性类型 …………………………………………………………… 75
4.3数据的基本统计描述 ………………………………………………………………… 77
4.3.1中心趋势的度量 …………………………………………………………… 77
4.3.2数据散布的度量 …………………………………………………………… 79
4.4数据对象的相似性度量 ……………………………………………………………… 80
4.4.1数据矩阵与相似矩阵 ……………………………………………………… 80
4.4.2标称属性的相异性 ………………………………………………………… 81
4.4.3二元属性的相异性 ………………………………………………………… 81
4.4.4数值属性的相似性度量 …………………………………………………… 83
4.4.5序数属性的相似性度量 …………………………………………………… 84
4.4.6混合类型属性的相似性 …………………………………………………… 84
4.4.7余弦相似性 ………………………………………………………………… 85
4.5几种数据可视化技术 ………………………………………………………………… 87
4.5.1基于像素的可视化技术 …………………………………………………… 87
4.5.2几何投影技术 ……………………………………………………………… 87
4.5.3基于图符的可视化技术 …………………………………………………… 90
4.5.4层次可视化技术 …………………………………………………………… 91
4.5.5高维数据的可视化 ………………………………………………………… 92
4.5.6文本词云图 ………………………………………………………………… 93
习题 4 ……………………………………………………………………………………… 94
第5章数据采集和预处理 …………………………………………………………………… 97
5.1概述 …………………………………………………………………………………… 97
5.1.1数据采集概述 ……………………………………………………………… 97
5.1.2数据采集的方法 …………………………………………………………… 98
5.1.3数据预处理概述 …………………………………………………………… 98
5.2数据清洗 ……………………………………………………………………………… 99
5.2.1缺失值清洗 ………………………………………………………………… 99
5.2.2异常值清洗 ………………………………………………………………… 101
5.2.3格式内容清洗 ……………………………………………………………… 105
5.2.4逻辑错误清洗 ……………………………………………………………… 105
5.2.5非需求数据清洗 …………………………………………………………… 105
5.2.6关联性验证 ………………………………………………………………… 106
5.3数据集成 …………………………………………………………………………… 106
5.3.1数据集成过程中的关键问题……………………………………………… 106
5.3.2 Python数据集成 ………………………………………………………… 110
5.4数据标准化 ………………………………………………………………………… 113
5.4.1 z-score方法 ……………………………………………………………… 113
5.4.2极差标准化方法…………………………………………………………… 114
5.4.3最大绝对值标准化方法…………………………………………………… 114
5.5数据归约 …………………………………………………………………………… 115
5.5.1维归约……………………………………………………………………… 115
5.5.2数量归约…………………………………………………………………… 119
5.5.3数据压缩…………………………………………………………………… 120
5.6数据变换与数据离散化 …………………………………………………………… 121
5.6.1数据变换…………………………………………………………………… 121
5.6.2数据离散化………………………………………………………………… 125
习题5……………………………………………………………………………………… 128
第3篇数据挖掘算法描述和应用篇
第6章分类模型……………………………………………………………………………… 132
6.1概述 ………………………………………………………………………………… 132
6.1.1基本概念…………………………………………………………………… 132
6.1.2训练集和测试集…………………………………………………………… 132
6.1.3分类的一般流程…………………………………………………………… 135
6.2 KNN分类模型 …………………………………………………………………… 135
6.2.1 KNN算法概述 …………………………………………………………… 135
6.2.2 KNN算法描述 …………………………………………………………… 136
6.2.3使用 Python实现 KNN分类算法 ……………………………………… 137
6.2.4 K值的确定 ……………………………………………………………… 139
6.3 Roc
hio分类模型 ………………………………………………………………… 140
6.3.1 Roc
hio算法概述 ………………………………………………………… 140
6.3.2 Roc
hio算法的原理及分类器的构建 …………………………………… 141
6.3.3使用 Python实现 Roc
hio文本分类 …………………………………… 142
6.4决策树分类模型 …………………………………………………………………… 143
6.4.1决策树分类概述…………………………………………………………… 144
6.4.2决策树的生成原理………………………………………………………… 144
6.4.3 ID3/ID4.5/CART算法 ………………………………………………… 145
6.4.4决策树的应用……………………………………………………………… 152
6.5贝叶斯分类模型 …………………………………………………………………… 159
6.5.1贝叶斯分类概述…………………………………………………………… 159
6.5.2朴素贝叶斯分类器………………………………………………………… 159
6.5.3朴素贝叶斯模型的优缺点………………………………………………… 162
6.5.4朴素贝叶斯模型的 Python实现 ………………………………………… 163
6.6支持向量机 ………………………………………………………………………… 164
6.6.1 SVM的基本原理 ………………………………………………………… 164
6.6.2 SVM分类的基本方法 …………………………………………………… 165
6.6.3使用 Python实现 SVM分类的案例 …………………………………… 168
6.7分类模型的评估与选择 …………………………………………………………… 170
6.7.1分类模型的性能评估 ……………………………………………………… 170
6.7.2分类模型的选择方法 ……………………………………………………… 174
习题 6……………………………………………………………………………………… 177
第7章聚类分析 ……………………………………………………………………………… 179
7.1概述 ………………………………………………………………………………… 179
7.1.1聚类分析的概念 …………………………………………………………… 179
7.1.2聚类分析的特征 …………………………………………………………… 179
7.1.3聚类分析的基本步骤 ……………………………………………………… 180
7.2基于划分的聚类方法 ……………………………………………………………… 180
7.2.1 k-means聚类方法 ………………………………………………………… 181
7.2.2 k-medoids聚类方法 ……………………………………………………… 183
7.2.3 k-means与 k-medoids的区别 …………………………………………… 188
7.3基于层次的聚类方法 ……………………………………………………………… 188
7.3.1簇间距离度量方法 ………………………………………………………… 188
7.3.2基于层次的聚类算法 ……………………………………………………… 189
7.3.3基于层次聚类算法的 Python实现 ……………………………………… 192
7.4基于密度的聚类方法 ……………………………………………………………… 193
7.4.1与密度聚类相关的概念 …………………………………………………… 193
7.4.2 DBSCAN算法 …………………………………………………………… 194
7.4.3 OPTICS算法 ……………………………………………………………… 198
7.4.4 DENCLUE算法 ………………………………………………………… 200
7.5基于网格的聚类方法 ……………………………………………………………… 202
7.5.1基于网格的聚类概述 ……………………………………………………… 202
7.5.2 CLIQUE算法 …………………………………………………………… 202
7.5.3 STING算法 ……………………………………………………………… 204
7.5.4基于网格聚类算法的 Python实现 ……………………………………… 205
7.6基于模型的聚类方法 ……………………………………………………………… 206
7.6.1基于模型的聚类概述 ……………………………………………………… 207
7.6.2 EM算法 …………………………………………………………………… 207
7.6.3 COBWEB算法 …………………………………………………………… 210
7.6.4用 EM算法求解高斯混合模型 ………………………………………… 212
7.7聚类评估 …………………………………………………………………………… 214
7.7.1估计聚类趋势 ……………………………………………………………… 214
7.7.2确定簇数 …………………………………………………………………… 216
7.7.3测定聚类质量 ……………………………………………………………… 218
习题 7……………………………………………………………………………………… 221
第8章关联规则分析………………………………………………………………………… 223
8.1概述 ………………………………………………………………………………… 223
8.1.1关联规则概述……………………………………………………………… 223
8.1.2关联规则的分类…………………………………………………………… 223
8.2关联规则的相关概念 ……………………………………………………………… 224
8.2.1基本概念…………………………………………………………………… 224
8.2.2支持度、置信度和提升度 ………………………………………………… 224
8.2.3频繁项集…………………………………………………………………… 225
8.3 Apriori算法 ………………………………………………………………………… 226
8.3.1 Apriori算法的思想 ……………………………………………………… 226
8.3.2 Apriori算法的描述 ……………………………………………………… 227
8.3.3 Apriori算法的 Python实现 ……………………………………………… 229
8.4 FP-Growth算法 …………………………………………………………………… 232
8.4.1 FP-Growth算法采用的策略 …………………………………………… 232
8.4.2构建 FP-Tre
…………………………………………………………… 232
8.4.3从 FP-Tre
中挖掘频繁模式 …………………………………………… 235
8.4.4 FP-Growth算法的 Python实现 ………………………………………… 236
8.5 Eclat算法 …………………………………………………………………………… 239
8.5.1 Eclat算法概述 …………………………………………………………… 240
8.5.2 Eclat算法的 Python实现 ……………………………………………… 241
8.6关联规则的典型应用场景 ………………………………………………………… 242
习题8……………………………………………………………………………………… 244
第9章预测模型……………………………………………………………………………… 247
9.1预测模型概述 ……………………………………………………………………… 247
9.1.1预测方法的分类…………………………………………………………… 247
9.1.2预测分析的一般步骤……………………………………………………… 248
9.2回归分析预测模型 ………………………………………………………………… 248
9.2.1一元线性回归预测模型…………………………………………………… 248
9.2.2多元线性回归预测模型…………………………………………………… 253
9.2.3非线性回归预测模型……………………………………………………… 257
9.2.4逻辑回归模型……………………………………………………………… 260
9.2.5多项式回归模型…………………………………………………………… 262
9.3趋势外推法预测模型 ……………………………………………………………… 264
9.3.1趋势外推法概述…………………………………………………………… 264
9.3.2常用的趋势外推法预测模型……………………………………………… 265
9.3.3趋势外推法的 Python实现 ……………………………………………… 268
9.4时间序列预测法模型 ……………………………………………………………… 270
9.4.1时间序列预测法概述……………………………………………………… 270
9.4.2常用的时间序列预测法模型……………………………………………… 271
习题9……………………………………………………………………………………… 280
第4篇后续学习引导篇
第10章深度学习简介 ……………………………………………………………………… 284
10.1深度学习概述 …………………………………………………………………… 284
10.1.1人工智能、机器学习和深度学习的关系 ……………………………… 284
10.1.2深度学习的发展历程 ………………………………………………… 285
10.2感知机 …………………………………………………………………………… 286
10.2.1感知机的起源 ………………………………………………………… 286
10.2.2感知机的局限性 ……………………………………………………… 287
10.3前馈神经网络 …………………………………………………………………… 288
10.3.1神经元 ………………………………………………………………… 288
10.3.2前馈神经网络概述 …………………………………………………… 290
10.3.3训练与预测 …………………………………………………………… 291
10.4反向传播算法 …………………………………………………………………… 292
10.4.1反向传播学习算法 …………………………………………………… 292
10.4.2反向传播学习的 Python实现 ……………………………………… 295
10.5卷积神经网络 …………………………………………………………………… 298
10.5.1卷积神经网络概述 …………………………………………………… 298
10.5.2卷积神经网络的整体结构 …………………………………………… 298
10.6循环神经网络 …………………………………………………………………… 301
10.6.1循环神经网络概述 …………………………………………………… 301
10.6.2循环神经网络的设计模式 …………………………………………… 302
10.6.3循环神经网络的运算 ………………………………………………… 302
10.6.4循环神经网络的 Python实现 ……………………………………… 303
10.7生成对抗网络 …………………………………………………………………… 304
10.7.1生成对抗网络概述 …………………………………………………… 304
10.7.2生成对抗网络算法 …………………………………………………… 304
习题 10…………………………………………………………………………………… 305
参考文献 ………………………………………………………………………………………… 308