案例研究1 在纸牌游戏中寻找制胜策略
第1章 使用Python计算概率 3
1.1 样本空间分析:一种用于测量结果不确定性的无方程方法 3
1.2 计算非平凡概率 7
1.2.1 问题1:分析一个有4个孩子的家庭 7
1.2.2 问题2:分析掷骰子游戏 9
1.2.3 问题3:使用加权样本空间计算掷骰概率 10
1.3 计算区间范围内的概率 12
1.4 本章小结 14
第2章 使用Matplotlib绘制概率图 15
2.1 基本的Matplotlib图 15
2.2 绘制抛硬币概率 19
2.3 本章小结 28
第3章 在NumPy中运行随机模拟 29
3.1 使用NumPy模拟随机抛硬币和掷骰子实验 29
3.2 使用直方图和NumPy数组计算置信区间 33
3.2.1 通过直方图合并显示邻近值 35
3.2.2 利用直方图进行概率推导 38
3.2.3 缩小较高置信区间的范围 40
3.2.4 在NumPy中计算直方图 43
3.3 使用置信区间分析一副有偏纸牌 44
3.4 使用排列来洗牌 47
3.5 本章小结 49
第4章 案例研究1的解决方案 51
4.1 对红牌进行预测 51
4.2 使用10张牌的样本空间来优化策略 57
4.3 本章小结 61
案例研究2 评估在线广告点击的显著性
第5章 使用SciPy进行基本概率和统计分析 65
5.1 使用SciPy探索数据和概率之间的关系 66
5.2 将均值作为中心性的度量 69
5.3 将方差作为离散性的度量 78
5.4 本章小结 83
第6章 使用中心极限定理和SciPy进行预测 85
6.1 使用SciPy处理正态分布 85
6.2 通过随机采样确定总体的均值和方差 92
6.3 使用均值和方差进行预测 95
6.3.1 计算正态曲线下方的面积 97
6.3.2 对计算的概率进行解释 99
6.4 本章小结 100
第7章 统计假设检验 101
7.1 评估样本均值和总体均值之间的差异 102
7.2 数据捕捞:过采样将导致错误的结论 106
7.3 有放回的自举法:当总体方差未知时检验假设 109
7.4 置换检验:当总体参数未知时比较样本的均值 115
7.5 本章小结 118
第8章 使用Pandas分析表格 119
8.1 使用基本Python存储表格 119
8.2 使用Pandas探索表格 120
8.3 检索表中的列 122
8.4 检索表中的行 124
8.5 修改表格行和列 126
8.6 保存和加载表格数据 129
8.7 使用Seaborn对表格进行可视化 130
8.8 本章小结 133
第9章 案例研究2的解决方案 135
9.1 在Pandas中处理广告点击数据表 135
9.2 根据均值差异计算p值 138
9.3 确定统计显著性 140
9.4 一个真实的警世故事 142
9.5 本章小结 142
案例研究3 利用新闻标题跟踪疾病暴发
第10章 对数据进行聚类 145
10.1 使用中心性发现聚类 145
10.2 K-means:一种将数据分组为K个中心组的聚类算法 151
10.2.1 使用scikit-learn进行K-means聚类 152
10.2.2 使用肘部法选择最佳K值 154
10.3 使用密度发现聚类 158
10.4 DBSCAN:一种基于空间密度
对数据进行分组的聚类算法 161
10.4.1 比较DBSCAN和K-means 162
10.4.2 基于非欧几里得距离的聚类方法 163
10.5 使用Pandas分析聚类 166
10.6 本章小结 168
第11章 对地理位置进行可视化与分析 169
11.1 大圆距离:计算地球上两点间的距离 170
11.2 使用Cartopy绘制地图 172
11.2.1 手动安装GEOS和Cartopy 173
11.2.2 使用Conda包管理器 173
11.2.3 可视化地图 174
11.3 使用GeoNamesCache进行位置跟踪 182
11.3.1 获取国家/地区信息 184
11.3.2 获取城市信息 186
11.3.3 GeoNamesCache库的使用限制 189
11.4 在文本中匹配位置名称 191
11.5 本章小结 194
第12章 案例研究3的解决方案 197
12.1 从标题数据中提取位置信息 197
12.2 对提取的位置信息进行可视化和聚类 203
12.3 对位置聚类进行分析 208
12.4 本章小结 213
案例研究4 使用在线招聘信息优化简历
第13章 测量文本相似度 217
13.1 简单的文本比较 218
13.1.1 探索Jaccard相似度 222
13.1.2 用数值替换单词 224
13.2 使用字数对文本进行向量化 228
13.2.1 使用归一化提高TF向量相似度 230
13.2.2 使用单位向量点积在相关性指标之间进行转换 237
13.3 使用矩阵乘法提高相似度计算的效率 239
13.3.1 基本矩阵运算 241
13.3.2 计算全矩阵相似度 249
13.4 矩阵乘法的计算限制 250
13.5 本章小结 253
第14章 矩阵数据的降维 255
14.1 将二维数据聚类到一维中 256
14.2 使用PCA和scikit-learn降维 269
14.3 将四维数据在二维中进行聚类 274
14.4 在不旋转的情况下计算主成分 281
14.5 使用SVD和scikit-learn进行高效降维 292
14.6 本章小结 294
第15章 大型文本数据集的NLP分析 295
15.1 使用scikit-learn加载在线论坛讨论数据 296
15.2 使用scikit-learn对文档进行向量化 297
15.3 根据发布频率和出现次数对单词进行排名 304
15.4 计算大型文档数据集之间的相似度 311
15.5 按主题对文本进行聚类 315
15.6 对文本聚类进行可视化 323
15.7 本章小结 333
第16章 从网页中提取文本 335
16.1 HTML文档的结构 335
16.2 使用Beautiful Soup解析HTML 342
16.3 下载和解析在线数据 349
16.4 本章小结 351
第17章 案例研究4的解决方案 353
17.1 从职位发布数据中提取技能要求 353
17.2 根据相关性对工作进行过滤 360
17.3 在相关职位发布中对技能进行聚类 369
17.3.1 将工作技能分成15个聚类 372
17.3.2 详细分析技术技能聚类 377
17.3.3 详细分析软技能聚类 380
17.3.4 使用不同的K值来探索聚类 381
17.3.5 分析700个最相关的职位发布信息 385
17.4 结论 388
17.5 本章小结 388
案例研究5 利用社交网络数据发现新朋友
第18章 图论和网络分析 393
18.1 使用基本图论按受欢迎程度对网站进行排名 393
18.2 利用无向图优化城镇之间的旅行时间 404
18.2.1 建立一个复杂的城镇交通网络模型 406
18.2.2 计算节点之间的最快旅行时间 411
18.3 本章小结 418
第19章 用于节点排名和社交网络分析的动态图论技术 419
19.1 根据网络中的预期流量发现中心节点 419
19.2 使用矩阵乘法计算交通概率 424
19.2.1 从概率论推导PageRank中心性 427
19.2.2 使用NetworkX计算PageRank中心性 431
19.3 使用马尔可夫聚类进行社区检测 433
19.4 在社交网络中发现朋友群 445
19.5 本章小结 448
第20章 网络驱动的监督机器学习 451
20.1 监督机器学习的基础 451
20.2 测量预测的标签的准确度 459
20.3 优化KNN性能 468
20.4 使用scikit-learn进行网格搜索 469
20.5 KNN算法的局限性 474
20.6 本章小结 475
第21章 使用逻辑回归训练线性分类器 477
21.1 根据身材尺寸对客户进行线性划分 477
21.2 训练线性分类器 482
21.3 使用逻辑回归改进线性分类 492
21.4 使用scikit-learn训练线性分类器 499
21.5 通过系数测量特征的重要性 504
21.6 线性分类器的限制 507
21.7 本章小结 508
第22章 通过决策树技术训练非线性分类器 511
22.1 逻辑规则的自动学习 511
22.1.1 使用两个特征训练一个嵌套的if/else模型 517
22.1.2 决定拆分哪个特征 523
22.1.3 训练具有两个以上特征的if/else模型 530
22.2 使用scikit-learn训练决策树分类器 536
22.3 决策树分类器的局限性 545
22.4 使用随机森林分类提高模型性能 546
22.5 使用scikit-learn训练随机森林分类器 550
22.6 本章小结 551
第23章 案例研究5的解决方案 553
23.1 探索数据 553
23.1.1 检查Profiles表 554
23.1.2 探索Observations表 556
23.1.3 探索Friendships表 559
23.2 使用网络特征训练预测模型 562
23.3 向模型中添加个人资料特征 568
23.4 通过一组稳定的特征优化模型性能 572
23.5 解释训练模型 574
23.6 本章小结 578