第1章 准备数据 1
1.1 导论 1
1.2 使用Python读写CSV/TSV文件 2
1.3 使用Python读写JSON文件 6
1.4 使用Python读写Excel文件 7
1.5 使用Python读写XML文件 10
1.6 使用pandas检索HTML页面 13
1.7 存储并检索关系数据库 15
1.8 存储并检索MongoDB 18
1.9 使用OpenRefine打开并转换数据 20
1.10 使用OpenRefine探索数据 23
1.11 排重 25
1.12 使用正则表达式与GREL清理数据 27
1.13 插补缺失值 28
1.14 将特征规范化、标准化 29
1.15 分级数据 30
1.16 编码分类变量 32
第2章 探索数据 34
2.1 导论 34
2.2 生成描述性的统计数据 34
2.3 探索特征之间的相关性 37
2.4 可视化特征之间的相互作用 38
2.5 生成直方图 43
2.6 创建多变量的图表 46
2.7 数据取样 49
2.8 将数据集拆分成训练集、交叉验证集和测试集 51
第3章 分类技巧 53
3.1 导论 53
3.2 测试并比较模型 53
3.3 朴素贝叶斯分类器 56
3.4 将逻辑回归作为通用分类器使用 58
3.5 将支持向量机用作分类引擎 61
3.6 使用决策树进行分类 65
3.7 使用随机森林预测订阅者 69
3.8 使用神经网络对呼叫进行分类 72
第4章 聚类技巧 79
4.1 导论 79
4.2 评估聚类方法的表现 79
4.3 用k均值算法聚类数据 82
4.4 为k均值算法找到最优的聚类数 84
4.5 使用mean shift聚类模型发现聚类 90
4.6 使用c均值构建模糊聚类模型 91
4.7 使用层次模型聚类数据 93
4.8 使用DBSCAN和BIRCH算法发现潜在的订阅者 96
第5章 降维 99
5.1 导论 99
5.2 创建三维散点图,显示主成分 99
5.3 使用核PCA降维 102
5.4 用主成分分析找到关键因素 105
5.5 使用随机PCA在数据中寻找主成分 109
5.6 使用线性判别分析提取有用的维度 114
5.7 用kNN分类模型给电话分类时使用多种降维技巧 117
第6章 回归模型 122
6.1 导论 122
6.2 识别并解决数据中的多重共线性 124
6.3 构建线性回归模型 128
6.4 使用OLS预测生产的电量 134
6.5 使用CART估算发电厂生产的电量 138
6.6 将kNN模型用于回归问题 141
6.7 将随机森林模型用于回归分析 143
6.8 使用SVM预测发电厂生产的电量 145
6.9 训练神经网络,预测发电厂生产的电量 151
第7章 时间序列技术 154
7.1 导论 154
7.2 在Python中如何处理日期对象 155
7.3 理解时间序列数据 159
7.4 平滑并转换观测值 163
7.5 过滤时间序列数据 166
7.6 移除趋势和季节性 169
7.7 使用ARMA和ARIMA模型预测未来 173
第8章 图 181
8.1 导论 181
8.2 使用NetworkX在Python中处理图对象 182
8.3 使用Gephi将图可视化 190
8.4 识别信用卡信息被盗的用户 200
8.5 识别谁盗窃了信用卡 204
第9章 自然语言处理 207
9.1 导论 207
9.2 从网络读入原始文本 208
9.3 标记化和标准化 212
9.4 识别词类,处理n-gram,识别命名实体 218
9.5 识别文章主题 224
9.6 识别句子结构 226
9.7 根据评论给影片归类 229
第10章 离散选择模型 233
10.1 导论 233
10.2 准备数据集以估算离散选择模型 235
10.3 估算知名的多项Logit模型 239
10.4 测试来自无关选项的独立性冲突 244
10.5 用巢式Logit模型处理IIA冲突 249
10.6 用混合Logit模型处理复杂的替代模式 251
第11章 模拟 254
11.1 导论 254
11.2 使用SimPy模拟加油站的加油过程 255
11.3 模拟电动车耗尽电量的场景 264
11.4 判断羊群面对群狼时是否有团灭的风险 269