第 1章 预测分析过程 1
1.1 技术要求 1
1.2 什么是预测分析 2
1.3 回顾预测分析的重要概念 3
1.4 预测分析过程 5
1.4.1 理解问题和定义问题 6
1.4.2 收集数据和准备数据 6
1.4.3 使用EDA挖掘数据信息 7
1.4.4 构建模型 8
1.4.5 评价模型 8
1.4.6 沟通以及/或者部署 8
1.4.7 CRISP-DM和其他方法 9
1.5 Python数据科学栈概述 10
1.5.1 Anaconda 10
1.5.2 Jupyter Notebook 11
1.5.3 NumPy 13
1.5.4 SciPy 18
1.5.5 pandas 19
1.5.6 Matplotlib 19
1.5.7 Seaborn 23
1.5.8 scikit-learn 24
1.5.9 TensorFlow和Keras 24
1.5.10 Dash 24
1.6 小结 25
扩展阅读 25
第 2章 理解问题和准备数据 26
2.1 技术要求 26
2.2 理解业务问题并提出解决方案 27
2.2.1 背景决定一切 27
2.2.2 定义预测内容 28
2.2.3 明确项目需要的数据 28
2.2.4 考虑数据访问 28
2.2.5 提出解决方案 29
2.3 实践项目—钻石的价格 30
2.3.1 钻石的价格—理解问题和定义问题 30
2.3.2 更多背景知识 32
2.3.3 钻石的价格—提出解决方案 32
2.3.4 钻石的价格—收集数据和准备数据 33
2.4 实践项目—信用卡违约 38
2.4.1 信用卡违约—理解问题和定义问题 38
2.4.2 信用卡违约—提出解决方案 39
2.4.3 信用卡违约—收集数据和准备数据 41
2.5 小结 51
扩展阅读 52
第3章 理解数据集—探索性数据分析 53
3.1 技术要求 54
3.2 什么是EDA 54
3.3 一元EDA 56
3.3.1 数值特征的一元EDA 57
3.3.2 分类特征的一元EDA 61
3.4 二元EDA 63
3.4.1 两个数值特征 64
3.4.2 两个分类特征 73
3.4.3 一个数值特征和一个分类特征 77
3.5 图形化的多元EDA 81
3.6 小结 86
扩展阅读 86
第4章 基于机器学习的数值预测 87
4.1 技术要求 88
4.2 机器学习简介 88
4.2.1 监督学习中的任务 89
4.2.2 创建第 一个机器学习模型 90
4.2.3 机器学习的目标—泛化 92
4.2.4 过拟合 94
4.2.5 评价函数和最优化 95
4.3 建模之前的实际考虑 95
4.3.1 scikit-learn简介 96
4.3.2 进一步的特征变换 96
4.4 多元线性回归 103
4.5 LASSO回归 106
4.6 kNN 107
4.7 训练与测试误差 109
4.8 小结 113
扩展阅读 113
第5章 基于机器学习的分类预测 115
5.1 技术要求 116
5.2 分类任务 116
5.3 信用卡违约数据集 117
5.4 逻辑回归 120
5.4.1 一个简单的逻辑回归模型 120
5.4.2 完整的逻辑回归模型 122
5.5 分类树 124
5.5.1 分类树的工作原理 126
5.5.2 分类树的优点和缺点 130
5.5.3 训练更大的分类树 130
5.6 随机森林 131
5.7 训练误差对测试误差 133
5.8 多元分类 135
5.9 朴素贝叶斯分类器 136
5.9.1 条件概率 136
5.9.2 贝叶斯定理 138
5.9.3 回到分类问题 140
5.9.4 高斯朴素贝叶斯 141
5.10 小结 143
扩展阅读 143
第6章 面向预测分析的神经网络简介 144
6.1 技术要求 144
6.2 引入神经网络模型 145
6.2.1 深度学习 145
6.2.2 MLP的结构—神经网络模型的组成部分 146
6.2.3 MLP的学习原理 148
6.3 TensorFlow和Keras简介 149
6.3.1 TensorFlow 149
6.3.2 Keras—以人为本的深度学习 150
6.4 基于神经网络的回归 151
6.4.1 构建预测钻石价格的MLP 152
6.4.2 训练MLP 154
6.4.3 基于神经网络的预测 156
6.5 基于神经网络的分类 157
6.5.1 构建预测信用卡违约的MLP 158
6.5.2 评价预测 160
6.6 训练神经网络模型的“黑暗艺术” 161
6.6.1 决策太多,时间太少 162
6.6.2 神经网络的正则化 163
6.6.3 训练神经网络模型的实用技巧 172
6.7 小结 173
扩展阅读 173
第7章 模型评价 174
7.1 技术要求 175
7.2 回归模型的评价 175
7.2.1 评价回归模型的指标 176
7.2.2 评价回归模型的可视化方法 180
7.3 评价分类模型 183
7.3.1 混淆矩阵及相关指标 184
7.3.2 评价分类模型的可视化方法 187
7.4 k折交叉验证 195
7.5 小结 197
扩展阅读 197
第8章 调整模型和提高性能 198
8.1 技术要求 198
8.2 超参数调整 199
8.2.1 优化单个超参数 200
8.2.2 优化多个超参数 205
8.3 提高性能 210
8.3.1 改进钻石价格预测 210
8.3.2 是技术问题,更是业务问题 214
8.4 小结 215
第9章 基于Dash的模型实现 216
9.1 技术要求 216
9.2 模型沟通和/或部署阶段 217
9.2.1 使用技术报告 217
9.2.2 说明现有应用程序的功能 218
9.2.3 分析应用程序 219
9.3 Dash简介 220
9.3.1 什么是Dash 220
9.3.2 Plotly 220
9.3.3 安装 221
9.3.4 应用程序布局 221
9.3.5 构建基本的静态App 222
9.3.6 构建基本的交互式App 224
9.4 将预测模型实现为网络应用程序 228
9.4.1 生成预测模型对象 229
9.4.2 构建网络应用程序 231
9.5 小结 237
扩展阅读 238