目 录
第1章 数据分析与挖掘概述 1
1.1 什么是数据分析和挖掘 1
1.2 数据分析与挖掘的应用领域 2
1.2.1 电商领域——发现破坏规则的“害群之马” 2
1.2.2 交通出行领域——为打车平台进行私人订制 3
1.2.3 医疗健康领域——找到医疗方案 3
1.3 数据分析与挖掘的区别 4
1.4 数据挖掘的流程 5
1.4.1 明确目标 5
1.4.2 数据搜集 6
1.4.3 数据清洗 6
1.4.4 构建模型 7
1.4.5 模型评估 7
1.4.6 应用部署 7
1.5 常用的数据分析与挖掘工具 8
1.6 本章小结 9
1.7 课后练习 9
第2章 从收入的预测分析开始 10
2.1 下载与安装Anaconda 10
2.1.1 基于Windows系统安装 11
2.1.2 基于Mac系统安装 12
2.1.3 基于Linux系统安装 14
2.2 基于Python的案例实战 14
2.2.1 数据的预处理 14
2.2.2 数据的探索性分析 16
2.2.3 数据建模 19
2.3 本章小结 29
2.4 课后练习 29
第3章 Python基础与数据抓取 30
3.1 数据结构及方法 30
3.1.1 列表 30
3.1.2 元组 36
3.1.3 字典 36
3.2 控制流 40
3.2.1 if分支 40
3.2.2 for循环 41
3.2.3 while循环 43
3.3 字符串处理方法 45
3.3.1 字符串的常用方法 45
3.3.2 正则表达式 47
3.4 自定义函数 50
3.4.1 自定义函数语法 50
3.4.2 自定义函数的几种参数 52
3.5 一个爬虫案例 55
3.6 本章小结 57
3.7 课后练习 59
第4章 Python数值计算——numpy的高效技能 60
4.1 数组的创建与操作 60
4.1.1 数组的创建 60
4.1.2 数组元素的获取 61
4.1.3 数组的常用属性 63
4.1.4 数组的形状处理 64
4.2 数组的基本运算符 67
4.2.1 四则运算 67
4.2.2 比较运算 68
4.2.3 广播运算 70
4.3 常用的数学和统计函数 71
4.4 线性代数的相关计算 73
4.4.1 矩阵乘法 73
4.4.2 diag函数的使用 74
4.4.3 特征根与特征向量 75
4.4.4 多元线性回归模型的解 75
4.4.5 多元一次方程组的求解 76
4.4.6 范数的计算 76
4.5 伪随机数的生成 77
4.6 本章小结 80
4.7 课后练习 81
第5章 Python数据处理——展现pandas的强大 82
5.1 序列与数据框的构造 82
5.1.1 构造序列 83
5.1.2 构造数据框 85
5.2 外部数据的读取 86
5.2.1 文本文件的读取 86
5.2.2 电子表格的读取 88
5.2.3 数据库数据的读取 89
5.3 数据类型转换及描述统计 91
5.4 字符与日期数据的处理 95
5.5 常用的数据清洗方法 99
5.5.1 重复观测处理 99
5.5.2 缺失值处理 100
5.5.3 异常值处理 103
5.6 数据子集的获取 106
5.7 透视表功能 108
5.8 表之间的合并与连接 111
5.9 分组聚合操作 114
5.10 本章小结 116
5.11 课后练习 118
第6章 Python数据可视化——分析报告必要元素 119
6.1 离散型变量的可视化 119
6.1.1 饼图——“芝麻信用”失信用户分布 120
6.1.2 条形图——胡润排行榜 124
6.2 数值型变量的可视化 134
6.2.1 直方图与核密度曲线——展现年龄分布特征 134
6.2.2 箱线图——二手房单价分布形态 138
6.2.3 小提琴图——客户消费数据的呈现 142
6.2.4 折线图——公众号每日阅读趋势 144
6.3 关系型数据的可视化 149
6.3.1 散点图——探究鸢尾花花瓣长度与宽度的关系 149
6.3.2 气泡图——暴露商品的销售特征 153
6.3.3 热力图——一份简单的月度日历 154
6.4 多个图形的合并 157
6.5 本章小结 160
6.6 课后练习 161
第7章 线性回归预测模型 163
7.1 一元线性回归模型——收入预测 163
7.2 多元线性回归模型——销售利润预测 167
7.2.1 回归模型的参数求解 167
7.2.2 回归模型的预测 168
7.3 回归模型的假设检验 171
7.3.1 模型的显著性检验——F检验 171
7.3.2 回归系数的显著性检验——t检验 174
7.4 回归模型的诊断 175
7.4.1 正态性检验 176
7.4.2 多重共线性检验 178
7.4.3 线性相关性检验 179
7.4.4 异常值检验 181
7.4.5 独立性检验 184
7.4.6 方差齐性检验 184
7.5 本章小结 187
7.6 课后练习 188
第8章 岭回归与LASSO回归模型 189
8.1 岭回归模型 189
8.1.1 参数求解 190
8.1.2 系数求解的几何意义 191
8.2 岭回归模型的应用——糖尿病病情预测(1) 192
8.2.1 可视化方法确定λ值 192
8.2.2 交叉验证法确定λ值 194
8.2.3 模型的预测 196
8.3 LASSO回归模型——糖尿病病情预测(2) 197
8.3.1 参数求解 197
8.3.2 系数求解的几何意义 199
8.4 LASSO回归模型的应用 200
8.4.1 可视化方法确定λ值 200
8.4.2 交叉验证法确定λ值 201
8.4.3 模型的预测 202
8.5 本章小结 204
8.6 课后练习 205
第9章 Logistic回归分类模型 206
9.1 Logistic模型的构建 207
9.1.1 Logistic模型的参数求解 209
9.1.2 Logistic模型的参数解释 211
9.2 分类模型的评估方法 211
9.2.1 混淆矩阵 212
9.2.2 ROC曲线 213
9.2.3 K-S曲线 214
9.3 Logistic回归模型的应用——运动状态的识别 217
9.3.1 模型的构建 217
9.3.2 模型的预测 219
9.3.3 模型的评估 219
9.4 本章小结 223
9.5 课后练习 224
第10章 决策树与随机森林 225
10.1 节点字段的选择 226
10.1.1 信息增益 227
10.1.2 信息增益率 229
10.1.3 基尼指数 230
10.2 决策树的剪枝 233
10.2.1 误差降低剪枝法 234
10.2.2 悲观剪枝法 234
10.2.3 代价复杂度剪枝法 236
10.3 随机森林 237
10.4 决策树与随机森林的应用——肾病患者病情预测 239
10.4.1 分类问题的解决 239
10.4.2 预测问题的解决 246
10.5 本章小结 249
10.6 课后练习 250
第11章 KNN模型及应用 251
11.1 KNN算法的思想 251
11.2 k值的选择 252
11.3 相似度的度量方法 253
11.3.1 欧式距离 253
11.3.2 曼哈顿距离 254
11.3.3 余弦相似度 254
11.3.4 杰卡德相似系数 255
11.4 近邻样本的搜寻方法 255
11.4.1 KD树搜寻法 256
11.4.2 球树搜寻法 259
11.5 KNN模型的应用——高炉发电量的预测 260
11.5.1 分类问题的解决 261
11.5.2 预测问题的解决 265
11.6 本章小结 269
11.7 课后练习 270
第12章 朴素贝叶斯模型 271
12.1 朴素贝叶斯理论基础 272
12.2 几种贝叶斯模型 273
12.2.1 高斯贝叶斯分类器 273
12.2.2 高斯贝叶斯分类器的应用——面部皮肤的判别 275
12.2.3 多项式贝叶斯分类器 278
12.2.4 多项式贝叶斯分类器的应用——蘑菇毒性的预判 280
12.2.5 伯努利贝叶斯分类器 283
12.2.6 伯努利贝叶斯分类器的应用——评论的情感识别 285
12.3 本章小结 289
12.4 课后练习 290
第13章 SVM模型及应用 292
13.1 SVM简介 293
13.1.1 距离公式的介绍 293
13.1.2 SVM的实现思想 294
13.2 几种常见的SVM模型 295
13.2.1 线性可分的SVM 295
13.2.2 一个手动计算的案例 298
13.2.3 近似线性可分SVM 300
13.2.4 非线性可分SVM 303
13.2.5 几种常用的SVM核函数 304
13.2.6 SVM的回归预测 306
13.3 分类问题的解决——手写字母的识别 308
13.4 预测问题的解决——受灾面积的预测 310
13.5 本章小结 314
13.6 课后练习 315
第14章 GBDT模型及应用 316
14.1 提升树算法 317
14.1.1 AdaBoost算法的损失函数 317
14.1.2 AdaBoost算法的操作步骤 319
14.1.3 AdaBoost算法的简单例子 320
14.1.4 AdaBoost算法的应用——违约客户的识别 322
14.2 梯度提升树算法 328
14.2.1 GBDT算法的操作步骤 328
14.2.2 GBDT分类算法 329
14.2.3 GBDT回归算法 330
14.2.4 GBDT算法的应用——欺诈交易的识别 331
14.3 非平衡数据的处理 334
14.4 XGBoost算法 336
14.4.1 XGBoost算法的损失函数 336
14.4.2 损失函数的演变 337
14.4.3 XGBoost算法的应用 340
14.5 本章小结 346
14.6 课后练习 347
第15章 Kmeans聚类分析 349
15.1 Kmeans聚类 350
15.1.1 Kmeans的思想 350
15.1.2 Kmeans的原理 351
15.2 k值的确定 352
15.2.1 拐点法 352
15.2.2 轮廓系数法 355
15.2.3 间隔统计量法 357
15.3 Kmeans聚类的应用 359
15.3.1 鸢尾花类别的聚合 360
15.3.2 基于NBA球员历史参赛数据的聚类 363
15.4 Kmeans聚类的注意事项 367
15.5 本章小结 367
15.6 课后练习 368
第16章 DBSCAN与层次聚类分析 369
16.1 密度聚类简介 370
16.1.1 密度聚类相关的概念 370
16.1.2 密度聚类的步骤 371
16.2 密度聚类与Kmeans的比较 373
16.3 层次聚类 376
16.3.1 簇间的距离度量 377
16.3.2 层次聚类的步骤 378
16.3.3 三种层次聚类的比较 380
16.4 密度聚类与层次聚类的应用——基于各省出生率与死亡率的聚类 382
16.5 本章小结 388
16.6 课后练习 390