图书目录

目    录

第1章  聚类 1

1.1  简介 1

1.2  无监督学习与有监督学习 1

1.3  聚类的识别 3

1.3.1  识别聚类 3

1.3.2  二维数据 4

1.3.3  练习1:识别数据中的聚类 5

1.4  关于k均值聚类 8

1.4.1  无数学k均值演练 8

1.4.2  对于k均值聚类的深度演练 9

1.4.3  替代距离度量—曼哈顿距离 10

1.4.4  更深的维度 10

1.4.5  练习2:用Python计算欧几里得距离 11

1.4.6  练习3:以距离的概念形成聚类 12

1.4.7  练习4:从头开始实现k均值 13

1.4.8  练习5:通过优化实现k均值 15

1.4.9  聚类性能:轮廓分数 18

1.4.10  练习6:计算轮廓分数 19

1.4.11  活动1:实现k均值聚类 21

1.5  小结 22

第2章  分层聚类 23

2.1  介绍 23

2.2  聚类刷新 23

2.3  分层的组织结构 24

2.4  分层聚类简介 25

2.4.1  执行分层聚类的步骤 26

2.4.2  分层聚类的演练示例 27

2.4.3  练习7:建立分层结构 30

2.5  链接 33

2.5.1  链接概述 33

2.5.2  活动2:应用链接标准 34

2.6  凝聚分层聚类与分裂分层聚类 36

2.6.1  练习8:使用scikit-learn实现凝聚分层聚类 37

2.6.2  活动3:比较k均值和分层聚类 39

2.7  关于k均值与分层聚类 41

2.8  小结 42

第3章  邻域聚类方法和DBSCAN 43

3.1  介绍 43

3.1.1  聚类方法 43

3.1.2  作为邻域的聚类 44

3.2  关于DBSCAN 45

3.2.1  DBSCAN深度 46

3.2.2  DBSCAN算法的演练 47

3.2.3  练习9:评估邻域半径大小的影响 48

3.2.4  DBSCAN属性—邻域半径 51

3.2.5  活动4:从头开始实现DBSCAN 52

3.2.6  DBSCAN属性—最少点 53

3.2.7  练习10:评估最少点阈值的影响 54

3.2.8  活动5:比较DBSCAN与k均值和分层聚类 57

3.3  DBSCAN与k均值和分层聚类 58

3.4  小结 58

第4章  降维和PCA 61

4.1  介绍 61

4.1.1  降维的定义 61

4.1.2  降维的应用 62

4.1.3  维数的诅咒 64

4.2  降维技术 66

4.2.1  概述 66

4.2.2  降维和无监督学习 67

4.3  主成分分析 68

4.3.1  均值 68

4.3.2  标准偏差 68

4.3.3  协方差 68

4.3.4  协方差矩阵 69

4.3.5  练习11:理解统计的基本概念 69

4.3.6  特征值和特征向量 73

4.3.7  练习12:计算特征值和特征向量 74

4.3.8  主成分分析的过程 77

4.3.9  练习13:手动执行PCA 78

4.3.10  练习14:scikit-learn PCA 83

4.3.11  活动6:手动PCA与scikit-learn的比较 87

4.3.12  恢复压缩的数据集 89

4.3.13  练习15:可视化通过手动PCA减少方差的效果 89

4.3.14  练习16:可视化通过scitkit-learn减少方差的效果 94

4.3.15  练习17:在matplotlib中绘制三维图 98

4.3.16  活动7:使用扩展的Iris数据集执行PCA 100

4.4  小结 102

第5章  自动编码器 103

5.1  介绍 103

5.2  人工神经网络基础 105

5.2.1  神经元 106

5.2.2  sigmoid函数 106

5.2.3  线性整流函数(ReLU) 107

5.2.4  练习18:对人工神经网络的神经元建模 108

5.2.5  活动8:使用ReLU激活函数建模神经元 111

5.2.6  神经网络:架构定义 112

5.2.7  练习19:定义Keras模型 113

5.2.8  神经网络:训练 115

5.2.9  练习20:训练Keras神经网络模型 116

5.2.10  活动9:MNIST神经网络 123

5.3  自动编码器 124

5.3.1  练习21:简单的自动编码器 125

5.3.2  活动10:简单的MNIST自动编码器 129

5.3.3  练习22:多层自动编码器 130

5.3.4  卷积神经网络 134

5.3.5  练习23:卷积自动编码器 134

5.3.6  活动11:MNIST卷积自动编码器 139

5.4  小结 141

第6章  t分布随机邻域嵌入算法 143

6.1  介绍 143

6.2  随机邻域嵌入 144

6.3  关于t分布式SNE 146

6.3.1  练习24:在MNIST数据集上实现t-SNE 146

6.3.2  活动12:在葡萄酒数据集上实现t-SNE 155

6.4  解释t-SNE图 157

6.4.1  困惑度 157

6.4.2  练习25:MNIST数据集的t-SNE和困惑度 157

6.4.3  活动13:葡萄酒数据集的t-SNE和困惑度 161

6.4.4  迭代 162

6.4.5  练习26:MNIST数据集的t-SNE和迭代 162

6.4.6  活动14:葡萄酒数据集的t-SNE和迭代 165

6.4.7  关于可视化的最终思考 166

6.5  小结 167

第7章  主题建模 169

7.1  介绍 169

7.1.1  主题模型概述 170

7.1.2  练习27:设置环境 170

7.1.3  主题模型的高级概述 172

7.1.4  商业应用 175

7.1.5  练习28:数据加载 176

7.2  清理文本数据 179

7.2.1  数据清理技术 180

7.2.2  练习29:逐步清理数据 180

7.2.3  练习30:完整的数据清理操作 184

7.2.4  活动15:加载和清理Twitter数据 187

7.3  潜在狄利克雷分配 188

7.3.1  变分推断 190

7.3.2  词袋 191

7.3.3  练习31:使用CountVectorizer创建词袋模型 192

7.3.4  困惑度 193

7.3.5  练习32:选择主题数 193

7.3.6  练习33:运行潜在狄利克雷分配 195

7.3.7  练习34:可视化LDA 199

7.3.8  练习35:尝试4个主题 203

7.3.9  活动16:潜在狄利克雷分配和与健康相关的Twitter贴文 206

7.3.10  其他词袋模型 208

7.3.11  练习36:使用TF-IDF创建词袋 208

7.4  非负矩阵分解 209

7.4.1  关于Frobenius范数 210

7.4.2  乘法更新 211

7.4.3  练习37:非负矩阵分解 212

7.4.4  练习38:可视化NMF 214

7.4.5  活动17:非负矩阵分解 216

7.5  小结 217

第8章  购物篮分析 219

8.1  介绍 219

8.2  关于购物篮分析 219

8.2.1  用例 222

8.2.2  重要概率度量标准 223

8.2.3  练习39:创建示例交易数据 223

8.2.4  支持度 225

8.2.5  置信度 225

8.2.6  提升度和杠杆率 226

8.2.7  确信度 226

8.2.8  练习40:计算度量标准 227

8.3  交易数据的特征 229

8.3.1  练习41:加载数据 230

8.3.2  数据清理和格式化 232

8.3.3  练习42:数据清理和格式化 233

8.3.4  数据编码 237

8.3.5  练习43:数据编码 238

8.3.6  活动18:加载和准备完整的在线零售数据 240

8.4  关于Apriori算法 241

8.4.1  计算修正 244

8.4.2  练习44:执行Apriori算法 244

8.4.3  活动19:对完整在线零售数据集运行Apriori算法 249

8.5  关联规则 251

8.5.1  练习45:推导关联规则 252

8.5.2  活动20:在完整的在线零售数据集上查找关联规则 257

8.6  小结 258

第9章  热点分析 259

9.1  介绍 259

9.1.1  空间统计 260

9.1.2  概率密度函数 260

9.1.3  在业务中使用热点分析 262

9.2  核密度估计 262

9.2.1  带宽值 263

9.2.2  练习46:带宽值的影响 263

9.2.3  选择最佳带宽 266

9.2.4  练习47:使用网格搜索选择最佳带宽 267

9.2.5  核函数 269

9.2.6  练习48:核函数的影响 271

9.2.7  核密度估计推导 272

9.2.8  练习49:模拟核密度估计的推导 273

9.2.9  活动21:估算一维密度 275

9.3  关于热点分析 277

9.3.1  练习50:使用seaborn加载数据和建模 277

9.3.2  练习51:使用基础地图 283

9.3.3  活动22:分析伦敦的犯罪数据 289

9.4  小结 291

附录 293

第1章  聚类 293

活动1:实现k均值聚类 293

第2章  分层聚类 296

活动2:应用链接标准 296

活动3:比较k均值和分层聚类 299

第3章  邻域聚类方法和DBSCAN 302

活动4:从头开始实现DBSCAN 302

活动5:比较DBSCAN与k均值和分层聚类 306

第4章  降维和PCA 310

活动6:手动PCA与scikit-learn的比较 310

活动7:使用扩展的Iris数据集执行PCA 314

第5章  自动编码器 319

活动8:使用ReLU激活函数建模神经元 319

活动9:MNIST神经网络 322

活动10:简单的MNIST自动编码器 325

活动11:MNIST卷积自动编码器 327

第6章  t分布随机邻域嵌入算法 331

活动12:在葡萄酒数据集上实现t-SNE 331

活动13:葡萄酒数据集的t-SNE和困惑度 335

活动14:葡萄酒数据集的t-SNE和迭代 339

第7章  主题建模 342

活动15:加载和清理Twitter数据 342

活动16:潜在狄利克雷分配和与健康相关的Twitter贴文 346

活动17:非负矩阵分解 351

第8章  购物篮分析 352

活动18:加载和准备完整的在线零售数据 352

活动19:对完整在线零售数据集运行Apriori算法 354

活动20:在完整的在线零售数据集上查找关联规则 357

第9章  热点分析 360

活动21:估算一维密度 360

活动22:分析伦敦的犯罪数据 362