斯坦福数据挖掘教程 第3版
第 1章 数据挖掘基本概念 1
1.1 数据挖掘的定义 1
1.1.1 建模 1
1.1.2 统计建模 2
1.1.3 机器学习 2
1.1.4 建模的计算方法 3
1.1.5 数据概括 3
1.1.6 特征抽取 4
1.2 数据挖掘的统计限制 5
1.2.1 整体情报预警 5
查看完整
1.1 数据挖掘的定义 1
1.1.1 建模 1
1.1.2 统计建模 2
1.1.3 机器学习 2
1.1.4 建模的计算方法 3
1.1.5 数据概括 3
1.1.6 特征抽取 4
1.2 数据挖掘的统计限制 5
1.2.1 整体情报预警 5
查看完整
【作者简介】尤雷·莱斯科夫(Jure Leskovec)Pinterest公司首席科学家,斯坦福大学计算机科学系副教授,研究方向为大型社交和信息网络的数据挖掘。他的研究成果获得了很多奖项,如Microsoft Research Faculty Fellowship、Alfred P. Sloan Fellowship和Okawa Foundation Fellowship,还获得了很多论文奖,同时也被《纽约时报》《华尔街日报》《华盛顿邮报》《连线》、NBC、BBC和CBC等流行的社会媒体刊载。他还创建了斯坦福网络分析平台(SNAP)。阿南德·拉贾拉曼(Anand Rajaraman)数据库和Web技术领域领军者,硅谷连续创业者和风险投资人,斯坦福大学计算机科学系助理教授。自1996年起创立过多家公司,这些公司先后被亚马逊、谷歌和沃尔玛集团收购,而他本人历任亚马逊技术总监、沃尔玛负责全球电子商务业务的副总裁。之后创立了风投公司Milliways Ven…
查看完整
查看完整
本书由斯坦福大学“Web挖掘”课程的内容总结而成,主要关注极大规模数据的挖掘。书中包括分布式文件系统、相似性搜索、搜索引擎技术、频繁项集挖掘、聚类算法、广告管理及推荐系统、社会网络图挖掘和大规模机器学习等主要内容。第3 版新增了决策树、神经网络和深度学习等内容。几乎每节都有对应的习题,以此来巩固所讲解的内容。读者还可以从网上获取相关拓展资料。
第 1章 数据挖掘基本概念 1
1.1 数据挖掘的定义 1
1.1.1 建模 1
1.1.2 统计建模 2
1.1.3 机器学习 2
1.1.4 建模的计算方法 3
1.1.5 数据概括 3
1.1.6 特征抽取 4
1.2 数据挖掘的统计限制 5
1.2.1 整体情报预警 5
1.2.2 邦弗朗尼原理 5
1.2.3 邦弗朗尼原理的一个例子 6
1.2.4 习题 7
1.3 相关知识 7
1.3.1 词语在文档中的重要性 7
1.3.2 哈希函数 8
1.3.3 索引 9
1.3.4 二级存储器 10
1.3.5 自然对数的底e 11
1.3.6 幂定律 12
1.3.7 习题 13
1.4 本书概要 14
1.5 小结 15
1.6 参考文献 16
第 2章 MapReduce和新软件栈 17
2.1 分布式文件系统 18
2.1.1 计算节点的物理结构 18
2.1.2 大规模文件系统的结构 19
2.2 MapReduce 20
2.2.1 Map任务 21
2.2.2 按键分组 21
2.2.3 Reduce任务 22
2.2.4 组合器 22
2.2.5 MapReduce的执行细节 23
2.2.6 节点故障的处理 24
2.2.7 习题 24
2.3 使用MapReduce的算法 24
2.3.1 基于MapReduce的矩阵—向量乘法实现 25
2.3.2 向量v无法放入内存时的处理 26
2.3.4 基于MapReduce的选择运算 28
2.3.5 基于MapReduce的投影运算 28
2.3.6 基于MapReduce的并、交和差运算 29
2.3.7 基于MapReduce的自然连接运算 29
2.3.8 基于MapReduce的分组和聚合运算 30
2.3.9 矩阵乘法 30
2.3.10 基于单步MapReduce的矩阵乘法 31
2.3.11 习题 32
2.4 MapReduce的扩展 32
2.4.1 工作流系统 33
2.4.2 Spark 34
2.4.3 Spark实现 36
2.4.4 TensorFlow 37
2.4.5 MapReduce的递归扩展版本 38
2.4.6 整体同步系统 40
2.4.7 习题 41
2.5 通信开销模型 41
2.5.1 任务网络的通信开销 42
2.5.2 时钟时间 43
2.5.3 多路连接 43
2.5.4 习题 46
2.6 MapReduce复杂性理论 47
2.6.1 Reducer规模及复制率 47
2.6.2 一个例子:相似性连接 48
2.6.3 MapReduce问题的一个图模型 51
2.6.5 并非所有输入都存在时的处理 52
2.6.7 案例分析:矩阵乘法 54
2.6.8 习题 57
2.7 小结 58
2.8 参考文献 59
第3章 相似项发现 61
3.1 集合相似度的应用 62
3.1.1 集合的Jaccard相似度 62
3.1.2 文档的相似度 62
3.1.3 协同过滤——一个集合相似问题 63
3.1.4 习题 64
3.2 文档的shingling 65
3.2.1 k-shingle 65
3.2.2 shingle大小的选择 65
3.2.3 对shingle进行哈希 66
3.2.4 基于词的shingle 66
3.2.5 习题 67
3.3 保持相似度的集合摘要表示 67
3.3.1 集合的矩阵表示 67
3.3.2 小哈希 68
3.3.3 小哈希和Jaccard相似度 69
3.3.4 小哈希签名 69
3.3.5 小哈希签名的计算 70
3.3.6 对小哈希加速 72
3.3.7 使用哈希加速 73
3.3.8 习题 75
3.4 文档的局部敏感哈希算法 76
3.4.1 面向小哈希签名的LSH 76
3.4.2 行条化策略的分析 77
3.4.3 上述技术的综合 79
3.4.4 习题 79
3.5 距离测度 80
3.5.1 距离测度的定义 80
3.5.2 欧氏距离 80
3.5.3 Jaccard 距离 81
3.5.4 余弦距离 81
3.5.5 编辑距离 82
3.5.6 海明距离 83
3.5.7 习题 83
3.6 局部敏感函数理论 85
3.6.1 局部敏感函数 85
3.6.2 面向Jaccard距离的局部敏感函数族 86
3.6.3 局部敏感函数族的放大处理 87
3.6.4 习题 89
3.7 面向其他距离测度的LSH函数族 89
3.7.1 面向海明距离的LSH函数族 89
3.7.2 随机超平面和余弦距离 90
3.7.3 梗概 91
3.7.4 面向欧氏距离的LSH函数族 91
3.7.5 面向欧氏空间的更多LSH函数族 92
3.7.6 习题 93
3.8 LSH函数的应用 93
3.8.1 实体关联 94
3.8.2 一个实体关联的例子 94
3.8.3 记录匹配的验证 95
3.8.4 指纹匹配 96
3.8.5 适用于指纹匹配的LSH函数族 98
3.8.7 习题 99
3.9 面向高相似度的方法 99
3.9.1 相等项发现 99
3.9.2 集合的字符串表示方法 100
3.9.3 基于长度的过滤 100
3.9.4 前缀索引 101
3.9.5 位置信息的使用 102
3.9.6 使用位置和长度信息的索引 103
3.9.7 习题 105
3.10 小结 106
3.11 参考文献 108
第4章 数据流挖掘 109
4.1 流数据模型 109
4.1.1 一个数据流管理系统 109
4.1.2 流数据源的例子 110
4.1.3 流查询 111
4.1.4 流处理中的若干问题 112
4.2 流当中的数据抽样 112
4.2.1 一个富有启发性的例子 112
4.2.2 代表性样本的获取 113
4.2.3 一般的抽样问题 114
4.2.4 样本规模的变化 114
4.2.5 习题 115
4.3 流过滤 115
4.3.1 一个例子 115
4.3.2 布隆过滤器 116
4.3.3 布隆过滤方法的分析 116
4.3.4 习题 117
4.4 流中独立元素的数目统计 118
4.4.1 独立元素计数问题 118
4.4.2 FM算法 118
4.4.3 组合估计 119
4.4.4 空间需求 120
4.4.5 习题 120
4.5 矩估计 120
4.5.1 矩定义 120
4.5.2 二阶矩估计的AMS算法 121
4.5.3 AMS算法有效的原因 122
4.5.4 更高阶矩的估计 122
4.5.5 无限流的处理 123
4.5.6 习题 124
4.6 窗口内的计数问题 124
4.6.1 精确计数的开销 125
4.6.2 DGIM算法 125
4.6.3 DGIM算法的存储需求 127
4.6.4 DGIM算法中的查询应答 127
4.6.5 DGIM条件的保持 127
4.6.6 降低错误率 128
4.6.7 窗口内计数问题的扩展 129
4.6.8 习题 130
4.7 衰减窗口 130
4.7.1 常见元素问题 130
4.7.2 衰减窗口的定义 130
4.7.3 流行元素的发现 131
4.8 小结 132
4.9 参考文献 133
第5章 链接分析 134
5.1 PageRank 134
5.1.1 早期的搜索引擎及词项作弊 134
5.1.2 PageRank的定义 136
5.1.3 Web结构 138
5.1.4 避免终止点 140
5.1.5 采集器陷阱和“抽税”法 142
5.1.6 PageRank在搜索引擎中的使用 144
5.1.7 习题 144
5.2 PageRank的快速计算 145
5.2.1 转移矩阵的表示 146
5.2.2 基于MapReduce的PageRank迭代计算 146
5.2.3 结果向量合并时的组合器使用 147
5.2.4 转移矩阵中块的表示 148
5.2.5 其他高效的PageRank迭代方法 149
5.2.6 习题 150
5.3 面向主题的PageRank 150
5.3.1 动机 150
5.3.2 有偏的随机游走模型 151
5.3.3 面向主题的PageRank的使用 153
5.3.5 习题 153
5.4 链接作弊 153
5.4.1 垃圾农场的架构 154
5.4.2 垃圾农场的分析 155
5.4.3 与链接作弊的斗争 156
5.4.4 TrustRank 156
5.4.5 垃圾质量 156
5.4.6 习题 157
5.5 导航页和权威页 157
5.5.1 HITS的直观意义 158
5.5.2 导航度和权威度的形式化 158
5.5.3 习题 161
5.6 小结 161
5.7 参考文献 164
第6章 频繁项集 165
6.1 购物篮模型 165
6.1.1 频繁项集的定义 165
6.1.2 频繁项集的应用 167
6.1.3 关联规则 168
6.1.4 高可信度关联规则的发现 169
6.1.5 习题 170
6.2 购物篮和A-Priori算法 171
6.2.1 购物篮数据的表示 171
6.2.2 项集计数中的内存使用 172
6.2.3 项集的单调性 173
6.2.4 二元组计数 174
6.2.5 A-Priori算法 174
6.2.6 所有频繁项集上的A-Priori算法 176
6.2.7 习题 177
6.3 更大数据集在内存中的处理 178
6.3.1 PCY算法 179
6.3.2 多阶段算法 180
6.3.3 多哈希算法 182
6.3.4 习题 183
6.4 有限扫描算法 185
6.4.1 简单的随机化算法 185
6.4.2 抽样算法中的错误规避 186
6.4.3 SON算法 187
6.4.4 SON算法和MapReduce 187
6.4.5 Toivonen算法 188
6.4.6 Toivonen算法的有效性分析 189
6.4.7 习题 189
6.5 流中的频繁项计数 190
6.5.1 流的抽样方法 190
6.5.2 衰减窗口中的频繁项集 191
6.5.3 混合方法 191
6.5.4 习题 192
6.6 小结 192
6.7 参考文献 194
第7章 聚类 195
7.1 聚类技术介绍 195
7.1.1 点、空间和距离 195
7.1.2 聚类策略 196
7.1.3 维数灾难 197
7.1.4 习题 198
7.2 层次聚类 198
7.2.1 欧氏空间下的层次聚类 198
7.2.2 层次聚类算法的效率 202
7.2.3 控制层次聚类的其他规则 202
7.2.4 非欧空间下的层次聚类 204
7.2.5 习题 205
7.3 k-均值算法 206
7.3.1 k-均值算法基本知识 206
7.3.2 k-均值算法的簇初始化 206
7.3.3 选择正确的k值 207
7.3.4 BFR算法 208
7.3.5 BFR算法中的数据处理 210
7.3.6 习题 211
7.4 CURE算法 212
7.4.1 CURE算法的初始化 213
7.4.2 CURE算法的完成 214
7.4.3 习题 214
7.5 非欧空间下的聚类 215
7.5.1 GRGPF算法中的簇表示 215
7.5.2 簇表示树的初始化 215
7.5.3 GRGPF算法中的点加入 216
7.5.4 簇的分裂及合并 217
7.5.5 习题 218
7.6 流聚类及并行化 218
7.6.1 流计算模型 218
7.6.2 一个流聚类算法 219
7.6.3 桶的初始化 219
7.6.4 桶合并 219
7.6.5 查询应答 221
7.6.6 并行环境下的聚类 221
7.6.7 习题 222
7.7 小结 222
7.8 参考文献 224
第8章 Web广告 226
8.1 在线广告相关问题 226
8.1.1 广告机会 226
8.1.2 直投广告 227
8.1.3 展示广告的相关问题 227
8.2 在线算法 228
8.2.1 在线和离线算法 228
8.2.2 贪心算法 229
8.2.3 竞争率 230
8.2.4 习题 230
8.3 广告匹配问题 231
8.3.1 匹配及完美匹配 231
8.3.2 极大匹配贪心算法 232
8.3.3 贪心匹配算法的竞争率 232
8.3.4 习题 233
8.4 adwords问题 233
8.4.1 搜索广告的历史 234
8.4.2 adwords问题的定义 234
8.4.3 adwords问题的贪心方法 235
8.4.4 Balance算法 236
8.4.5 Balance算法竞争率的一个下界 236
8.4.6 多投标者的Balance算法 238
8.4.7 一般性的Balance算法 239
8.4.8 adwords问题的后论述 240
8.4.9 习题 240
8.5 adwords的实现 240
8.5.1 投标和搜索查询的匹配 241
8.5.2 更复杂的匹配问题 241
8.5.3 文档和投标之间的匹配算法 242
8.6 小结 243
8.7 参考文献 245
第9章 推荐系统 246
9.1 推荐系统的模型 246
9.1.1 效用矩阵 246
9.1.2 长尾现象 247
9.1.3 推荐系统的应用 249
9.1.4 效用矩阵的填充 249
9.2 基于内容的推荐 249
9.2.1 项模型 250
9.2.2 文档的特征发现 250
9.2.3 基于Tag的项特征获取 251
9.2.4 项模型的表示 252
9.2.5 用户模型 253
9.2.6 基于内容的项推荐 254
9.2.7 分类算法 254
9.2.8 习题 256
9.3 协同过滤 257
9.3.1 相似度计算 257
9.3.2 相似度对偶性 259
9.3.3 用户聚类和项聚类 261
9.3.4 习题 262
9.4 降维处理 262
9.4.1 UV分解 262
9.4.2 RMSE 263
9.4.3 UV分解的增量式计算 264
9.4.4 对任一元素的优化 267
9.4.5 一个完整UV分解算法的构建 269
9.5 Netflix竞赛 270
9.6 小结 271
9.7 参考文献 272
第 10章 社会网络图挖掘 273
10.1 将社会网络看成图 273
10.1.1 社会网络的概念 273
10.1.2 将社会网络看成图 274
10.1.3 各种社会网络的例子 275
10.1.4 多类型节点构成的图 276
10.1.5 习题 277
10.2 社会网络图的聚类 277
10.2.1 社会网络图的距离计算 277
10.2.2 应用标准的聚类算法 278
10.2.3 中介度 279
10.2.4 Girvan-Newman算法 279
10.2.5 利用中介度来发现社区 282
10.2.6 习题 283
10.3 社区的直接发现 283
10.3.1 团的发现 284
10.3.2 完全二部图 284
10.3.3 发现完全二部子图 285
10.3.4 完全二部子图一定存在的原因 285
10.3.5 习题 287
10.4 图划分 287
10.4.1 图划分的好坏标准 288
10.4.2 归一化割 288
10.4.3 描述图的一些矩阵 289
10.4.4 拉普拉斯矩阵的特征值 290
10.4.5 其他图划分方法 292
10.4.6 习题 292
10.5 重叠社区的发现 293
10.5.1 社区的本质 293
10.5.2 极大似然估计 294
10.5.3 关系图模型 295
10.5.4 社区分配的离散优化 296
10.5.5 避免成员隶属关系的离散式变化 297
10.5.6 习题 298
10.6 Simrank 299
10.6.1 社会网络上的随机游走者 299
10.6.2 带重启的随机游走 300
10.6.3 近似Simrank 302
10.6.4 近似Simrank有效的原因 303
10.6.5 Simrank在社区发现中的应用 304
10.6.6 习题 305
10.7 三角形计数问题. 306
10.7.1 为什么要对三角形计数 306
10.7.2 一个寻找三角形的算法 307
10.7.3 三角形寻找算法的性 308
10.7.4 基于MapReduce寻找三角形 308
10.7.5 使用更少的Reduce任务 310
10.7.6 习题 310
10.8 图的邻居性质 311
10.8.1 有向图和邻居 311
10.8.2 图的直径 312
10.8.3 传递闭包和可达性 313
10.8.4 基于MapReduce的可达性计算 314
10.8.5 半朴素求值 315
10.8.6 线性传递闭包 315
10.8.7 基于双重递归的传递闭包 316
10.8.8 智能传递闭包 317
10.8.9 多种方法的比较 319
10.8.10 基于图归约的传递闭包 320
10.8.11 邻居规模的近似计算 321
10.8.12 习题 323
10.9 小结 324
10.10 参考文献 326
第 11章 降维处理 328
11.1 特征值和特征向量 328
11.1.1 定义 328
11.1.2 特征值与特征向量计算 329
11.1.3 基于幂迭代方法的特征对求解 331
11.1.4 特征向量矩阵 333
11.1.5 习题 333
11.2 主成分分析 334
11.2.1 一个示例 334
11.2.2 利用特征向量进行降维 337
11.2.3 距离矩阵 338
11.2.4 习题 339
11.3 奇异值分解 339
11.3.1 SVD的定义 339
11.3.2 SVD解析 341
11.3.3 基于SVD的降维 342
11.3.4 将较低奇异值置为0后有效的原因 343
11.3.5 使用概念进行查询处理 344
11.3.6 矩阵SVD的计算 345
11.3.7 习题 346
11.4 CUR分解 347
11.4.1 CUR的定义 347
11.4.2 合理选择行和列 348
11.4.3 构建中间矩阵 349
11.4.4 完整的CUR分解 350
11.4.5 去除重复行和列 351
11.4.6 习题 352
11.5 小结 352
11.6 参考文献 353
第 12章 大规模机器学习 354
12.1 机器学习模型 354
12.1.1 训练集 354
12.1.2 一些例子 355
12.1.3 机器学习方法 357
12.1.4 机器学习架构 358
12.1.5 习题 360
12.2 感知机 360
12.2.1 训练阈值为0的感知机 361
12.2.2 感知机的收敛性 363
12.2.3 Winnow算法 364
12.2.4 允许阈值变化的情况 365
12.2.5 多类感知机 366
12.2.6 变换训练集 367
12.2.7 感知机的问题 368
12.2.8 感知机的并行实现 369
12.2.9 习题 370
12.3 支持向量机 371
12.3.1 支持向量机的机理 371
12.3.2 超平面归一化 372
12.3.3 寻找逼近分界面 374
12.3.4 基于梯度下降法求解SVM 380
12.3.6 SVM的并行实现 380
12.3.7 习题 381
12.4 近邻学习 381
12.4.1 近邻计算的框架 381
12.4.2 近邻学习 382
12.4.3 学习一维函数 383
12.4.4 核回归 384
12.4.5 处理高维欧氏空间数据 385
12.4.6 对非欧距离的处理 386
12.4.7 习题 386
12.5 决策树 387
12.5.1 使用决策树 387
12.5.2 不纯度度量方法 389
12.5.3 决策树节点的设计 390
12.5.4 选择基于数值型特征的测试 390
12.5.5 选择基于分类型特征的测试 392
12.5.6 决策树的并行设计 393
12.5.7 节点剪枝 394
12.5.8 随机森林 395
12.5.9 习题 396
12.6 各种学习方法的比较 397
12.7 小结 397
12.8 参考文献 399
第 13章 神经网络与深度学习 400
13.1 神经网络简介 400
13.1.1 神经网络概述 402
13.1.2 节点间的连接 403
13.1.3 卷积神经网络 403
13.1.4 神经网络的设计事项 404
13.1.5 习题 404
13.2 密集型前馈网络 405
13.2.1 基于线性代数的记法 405
13.2.2 激活函数 406
13.2.3 sigmoid函数 407
13.2.4 双曲正切函数 407
13.2.5 softmax函数 408
13.2.6 修正线性单元 409
13.2.7 损失函数 410
13.2.8 回归损失函数 410
13.2.9 分类损失函数 411
13.2.10 习题 412
13.3 反向传播与梯度下降 413
13.3.1 计算图 414
13.3.2 梯度、雅可比矩阵与链式法则 415
13.3.3 反向传播算法 416
13.3.4 梯度下降的迭代计算 418
13.3.5 张量 419
13.3.6 习题 420
13.4 卷积神经网络 420
13.4.1 卷积层 421
13.4.2 卷积与互相关 423
13.4.3 池化层 424
13.4.4 CNN架构 424
13.4.5 实现与训练 426
13.4.6 习题 427
13.5 循环神经网络 427
13.5.1 RNN的训练 428
13.5.2 梯度消失与爆炸 430
13.5.3 长短期记忆网络 431
13.5.4 习题 433
13.6 正则化 433
13.6.1 范式惩罚 434
13.6.2 dropout 434
13.6.3 提前停止 434
13.6.4 数据增强 435
13.7 小结 435
13.8 参考文献 436
^ 收 起
1.1 数据挖掘的定义 1
1.1.1 建模 1
1.1.2 统计建模 2
1.1.3 机器学习 2
1.1.4 建模的计算方法 3
1.1.5 数据概括 3
1.1.6 特征抽取 4
1.2 数据挖掘的统计限制 5
1.2.1 整体情报预警 5
1.2.2 邦弗朗尼原理 5
1.2.3 邦弗朗尼原理的一个例子 6
1.2.4 习题 7
1.3 相关知识 7
1.3.1 词语在文档中的重要性 7
1.3.2 哈希函数 8
1.3.3 索引 9
1.3.4 二级存储器 10
1.3.5 自然对数的底e 11
1.3.6 幂定律 12
1.3.7 习题 13
1.4 本书概要 14
1.5 小结 15
1.6 参考文献 16
第 2章 MapReduce和新软件栈 17
2.1 分布式文件系统 18
2.1.1 计算节点的物理结构 18
2.1.2 大规模文件系统的结构 19
2.2 MapReduce 20
2.2.1 Map任务 21
2.2.2 按键分组 21
2.2.3 Reduce任务 22
2.2.4 组合器 22
2.2.5 MapReduce的执行细节 23
2.2.6 节点故障的处理 24
2.2.7 习题 24
2.3 使用MapReduce的算法 24
2.3.1 基于MapReduce的矩阵—向量乘法实现 25
2.3.2 向量v无法放入内存时的处理 26
2.3.4 基于MapReduce的选择运算 28
2.3.5 基于MapReduce的投影运算 28
2.3.6 基于MapReduce的并、交和差运算 29
2.3.7 基于MapReduce的自然连接运算 29
2.3.8 基于MapReduce的分组和聚合运算 30
2.3.9 矩阵乘法 30
2.3.10 基于单步MapReduce的矩阵乘法 31
2.3.11 习题 32
2.4 MapReduce的扩展 32
2.4.1 工作流系统 33
2.4.2 Spark 34
2.4.3 Spark实现 36
2.4.4 TensorFlow 37
2.4.5 MapReduce的递归扩展版本 38
2.4.6 整体同步系统 40
2.4.7 习题 41
2.5 通信开销模型 41
2.5.1 任务网络的通信开销 42
2.5.2 时钟时间 43
2.5.3 多路连接 43
2.5.4 习题 46
2.6 MapReduce复杂性理论 47
2.6.1 Reducer规模及复制率 47
2.6.2 一个例子:相似性连接 48
2.6.3 MapReduce问题的一个图模型 51
2.6.5 并非所有输入都存在时的处理 52
2.6.7 案例分析:矩阵乘法 54
2.6.8 习题 57
2.7 小结 58
2.8 参考文献 59
第3章 相似项发现 61
3.1 集合相似度的应用 62
3.1.1 集合的Jaccard相似度 62
3.1.2 文档的相似度 62
3.1.3 协同过滤——一个集合相似问题 63
3.1.4 习题 64
3.2 文档的shingling 65
3.2.1 k-shingle 65
3.2.2 shingle大小的选择 65
3.2.3 对shingle进行哈希 66
3.2.4 基于词的shingle 66
3.2.5 习题 67
3.3 保持相似度的集合摘要表示 67
3.3.1 集合的矩阵表示 67
3.3.2 小哈希 68
3.3.3 小哈希和Jaccard相似度 69
3.3.4 小哈希签名 69
3.3.5 小哈希签名的计算 70
3.3.6 对小哈希加速 72
3.3.7 使用哈希加速 73
3.3.8 习题 75
3.4 文档的局部敏感哈希算法 76
3.4.1 面向小哈希签名的LSH 76
3.4.2 行条化策略的分析 77
3.4.3 上述技术的综合 79
3.4.4 习题 79
3.5 距离测度 80
3.5.1 距离测度的定义 80
3.5.2 欧氏距离 80
3.5.3 Jaccard 距离 81
3.5.4 余弦距离 81
3.5.5 编辑距离 82
3.5.6 海明距离 83
3.5.7 习题 83
3.6 局部敏感函数理论 85
3.6.1 局部敏感函数 85
3.6.2 面向Jaccard距离的局部敏感函数族 86
3.6.3 局部敏感函数族的放大处理 87
3.6.4 习题 89
3.7 面向其他距离测度的LSH函数族 89
3.7.1 面向海明距离的LSH函数族 89
3.7.2 随机超平面和余弦距离 90
3.7.3 梗概 91
3.7.4 面向欧氏距离的LSH函数族 91
3.7.5 面向欧氏空间的更多LSH函数族 92
3.7.6 习题 93
3.8 LSH函数的应用 93
3.8.1 实体关联 94
3.8.2 一个实体关联的例子 94
3.8.3 记录匹配的验证 95
3.8.4 指纹匹配 96
3.8.5 适用于指纹匹配的LSH函数族 98
3.8.7 习题 99
3.9 面向高相似度的方法 99
3.9.1 相等项发现 99
3.9.2 集合的字符串表示方法 100
3.9.3 基于长度的过滤 100
3.9.4 前缀索引 101
3.9.5 位置信息的使用 102
3.9.6 使用位置和长度信息的索引 103
3.9.7 习题 105
3.10 小结 106
3.11 参考文献 108
第4章 数据流挖掘 109
4.1 流数据模型 109
4.1.1 一个数据流管理系统 109
4.1.2 流数据源的例子 110
4.1.3 流查询 111
4.1.4 流处理中的若干问题 112
4.2 流当中的数据抽样 112
4.2.1 一个富有启发性的例子 112
4.2.2 代表性样本的获取 113
4.2.3 一般的抽样问题 114
4.2.4 样本规模的变化 114
4.2.5 习题 115
4.3 流过滤 115
4.3.1 一个例子 115
4.3.2 布隆过滤器 116
4.3.3 布隆过滤方法的分析 116
4.3.4 习题 117
4.4 流中独立元素的数目统计 118
4.4.1 独立元素计数问题 118
4.4.2 FM算法 118
4.4.3 组合估计 119
4.4.4 空间需求 120
4.4.5 习题 120
4.5 矩估计 120
4.5.1 矩定义 120
4.5.2 二阶矩估计的AMS算法 121
4.5.3 AMS算法有效的原因 122
4.5.4 更高阶矩的估计 122
4.5.5 无限流的处理 123
4.5.6 习题 124
4.6 窗口内的计数问题 124
4.6.1 精确计数的开销 125
4.6.2 DGIM算法 125
4.6.3 DGIM算法的存储需求 127
4.6.4 DGIM算法中的查询应答 127
4.6.5 DGIM条件的保持 127
4.6.6 降低错误率 128
4.6.7 窗口内计数问题的扩展 129
4.6.8 习题 130
4.7 衰减窗口 130
4.7.1 常见元素问题 130
4.7.2 衰减窗口的定义 130
4.7.3 流行元素的发现 131
4.8 小结 132
4.9 参考文献 133
第5章 链接分析 134
5.1 PageRank 134
5.1.1 早期的搜索引擎及词项作弊 134
5.1.2 PageRank的定义 136
5.1.3 Web结构 138
5.1.4 避免终止点 140
5.1.5 采集器陷阱和“抽税”法 142
5.1.6 PageRank在搜索引擎中的使用 144
5.1.7 习题 144
5.2 PageRank的快速计算 145
5.2.1 转移矩阵的表示 146
5.2.2 基于MapReduce的PageRank迭代计算 146
5.2.3 结果向量合并时的组合器使用 147
5.2.4 转移矩阵中块的表示 148
5.2.5 其他高效的PageRank迭代方法 149
5.2.6 习题 150
5.3 面向主题的PageRank 150
5.3.1 动机 150
5.3.2 有偏的随机游走模型 151
5.3.3 面向主题的PageRank的使用 153
5.3.5 习题 153
5.4 链接作弊 153
5.4.1 垃圾农场的架构 154
5.4.2 垃圾农场的分析 155
5.4.3 与链接作弊的斗争 156
5.4.4 TrustRank 156
5.4.5 垃圾质量 156
5.4.6 习题 157
5.5 导航页和权威页 157
5.5.1 HITS的直观意义 158
5.5.2 导航度和权威度的形式化 158
5.5.3 习题 161
5.6 小结 161
5.7 参考文献 164
第6章 频繁项集 165
6.1 购物篮模型 165
6.1.1 频繁项集的定义 165
6.1.2 频繁项集的应用 167
6.1.3 关联规则 168
6.1.4 高可信度关联规则的发现 169
6.1.5 习题 170
6.2 购物篮和A-Priori算法 171
6.2.1 购物篮数据的表示 171
6.2.2 项集计数中的内存使用 172
6.2.3 项集的单调性 173
6.2.4 二元组计数 174
6.2.5 A-Priori算法 174
6.2.6 所有频繁项集上的A-Priori算法 176
6.2.7 习题 177
6.3 更大数据集在内存中的处理 178
6.3.1 PCY算法 179
6.3.2 多阶段算法 180
6.3.3 多哈希算法 182
6.3.4 习题 183
6.4 有限扫描算法 185
6.4.1 简单的随机化算法 185
6.4.2 抽样算法中的错误规避 186
6.4.3 SON算法 187
6.4.4 SON算法和MapReduce 187
6.4.5 Toivonen算法 188
6.4.6 Toivonen算法的有效性分析 189
6.4.7 习题 189
6.5 流中的频繁项计数 190
6.5.1 流的抽样方法 190
6.5.2 衰减窗口中的频繁项集 191
6.5.3 混合方法 191
6.5.4 习题 192
6.6 小结 192
6.7 参考文献 194
第7章 聚类 195
7.1 聚类技术介绍 195
7.1.1 点、空间和距离 195
7.1.2 聚类策略 196
7.1.3 维数灾难 197
7.1.4 习题 198
7.2 层次聚类 198
7.2.1 欧氏空间下的层次聚类 198
7.2.2 层次聚类算法的效率 202
7.2.3 控制层次聚类的其他规则 202
7.2.4 非欧空间下的层次聚类 204
7.2.5 习题 205
7.3 k-均值算法 206
7.3.1 k-均值算法基本知识 206
7.3.2 k-均值算法的簇初始化 206
7.3.3 选择正确的k值 207
7.3.4 BFR算法 208
7.3.5 BFR算法中的数据处理 210
7.3.6 习题 211
7.4 CURE算法 212
7.4.1 CURE算法的初始化 213
7.4.2 CURE算法的完成 214
7.4.3 习题 214
7.5 非欧空间下的聚类 215
7.5.1 GRGPF算法中的簇表示 215
7.5.2 簇表示树的初始化 215
7.5.3 GRGPF算法中的点加入 216
7.5.4 簇的分裂及合并 217
7.5.5 习题 218
7.6 流聚类及并行化 218
7.6.1 流计算模型 218
7.6.2 一个流聚类算法 219
7.6.3 桶的初始化 219
7.6.4 桶合并 219
7.6.5 查询应答 221
7.6.6 并行环境下的聚类 221
7.6.7 习题 222
7.7 小结 222
7.8 参考文献 224
第8章 Web广告 226
8.1 在线广告相关问题 226
8.1.1 广告机会 226
8.1.2 直投广告 227
8.1.3 展示广告的相关问题 227
8.2 在线算法 228
8.2.1 在线和离线算法 228
8.2.2 贪心算法 229
8.2.3 竞争率 230
8.2.4 习题 230
8.3 广告匹配问题 231
8.3.1 匹配及完美匹配 231
8.3.2 极大匹配贪心算法 232
8.3.3 贪心匹配算法的竞争率 232
8.3.4 习题 233
8.4 adwords问题 233
8.4.1 搜索广告的历史 234
8.4.2 adwords问题的定义 234
8.4.3 adwords问题的贪心方法 235
8.4.4 Balance算法 236
8.4.5 Balance算法竞争率的一个下界 236
8.4.6 多投标者的Balance算法 238
8.4.7 一般性的Balance算法 239
8.4.8 adwords问题的后论述 240
8.4.9 习题 240
8.5 adwords的实现 240
8.5.1 投标和搜索查询的匹配 241
8.5.2 更复杂的匹配问题 241
8.5.3 文档和投标之间的匹配算法 242
8.6 小结 243
8.7 参考文献 245
第9章 推荐系统 246
9.1 推荐系统的模型 246
9.1.1 效用矩阵 246
9.1.2 长尾现象 247
9.1.3 推荐系统的应用 249
9.1.4 效用矩阵的填充 249
9.2 基于内容的推荐 249
9.2.1 项模型 250
9.2.2 文档的特征发现 250
9.2.3 基于Tag的项特征获取 251
9.2.4 项模型的表示 252
9.2.5 用户模型 253
9.2.6 基于内容的项推荐 254
9.2.7 分类算法 254
9.2.8 习题 256
9.3 协同过滤 257
9.3.1 相似度计算 257
9.3.2 相似度对偶性 259
9.3.3 用户聚类和项聚类 261
9.3.4 习题 262
9.4 降维处理 262
9.4.1 UV分解 262
9.4.2 RMSE 263
9.4.3 UV分解的增量式计算 264
9.4.4 对任一元素的优化 267
9.4.5 一个完整UV分解算法的构建 269
9.5 Netflix竞赛 270
9.6 小结 271
9.7 参考文献 272
第 10章 社会网络图挖掘 273
10.1 将社会网络看成图 273
10.1.1 社会网络的概念 273
10.1.2 将社会网络看成图 274
10.1.3 各种社会网络的例子 275
10.1.4 多类型节点构成的图 276
10.1.5 习题 277
10.2 社会网络图的聚类 277
10.2.1 社会网络图的距离计算 277
10.2.2 应用标准的聚类算法 278
10.2.3 中介度 279
10.2.4 Girvan-Newman算法 279
10.2.5 利用中介度来发现社区 282
10.2.6 习题 283
10.3 社区的直接发现 283
10.3.1 团的发现 284
10.3.2 完全二部图 284
10.3.3 发现完全二部子图 285
10.3.4 完全二部子图一定存在的原因 285
10.3.5 习题 287
10.4 图划分 287
10.4.1 图划分的好坏标准 288
10.4.2 归一化割 288
10.4.3 描述图的一些矩阵 289
10.4.4 拉普拉斯矩阵的特征值 290
10.4.5 其他图划分方法 292
10.4.6 习题 292
10.5 重叠社区的发现 293
10.5.1 社区的本质 293
10.5.2 极大似然估计 294
10.5.3 关系图模型 295
10.5.4 社区分配的离散优化 296
10.5.5 避免成员隶属关系的离散式变化 297
10.5.6 习题 298
10.6 Simrank 299
10.6.1 社会网络上的随机游走者 299
10.6.2 带重启的随机游走 300
10.6.3 近似Simrank 302
10.6.4 近似Simrank有效的原因 303
10.6.5 Simrank在社区发现中的应用 304
10.6.6 习题 305
10.7 三角形计数问题. 306
10.7.1 为什么要对三角形计数 306
10.7.2 一个寻找三角形的算法 307
10.7.3 三角形寻找算法的性 308
10.7.4 基于MapReduce寻找三角形 308
10.7.5 使用更少的Reduce任务 310
10.7.6 习题 310
10.8 图的邻居性质 311
10.8.1 有向图和邻居 311
10.8.2 图的直径 312
10.8.3 传递闭包和可达性 313
10.8.4 基于MapReduce的可达性计算 314
10.8.5 半朴素求值 315
10.8.6 线性传递闭包 315
10.8.7 基于双重递归的传递闭包 316
10.8.8 智能传递闭包 317
10.8.9 多种方法的比较 319
10.8.10 基于图归约的传递闭包 320
10.8.11 邻居规模的近似计算 321
10.8.12 习题 323
10.9 小结 324
10.10 参考文献 326
第 11章 降维处理 328
11.1 特征值和特征向量 328
11.1.1 定义 328
11.1.2 特征值与特征向量计算 329
11.1.3 基于幂迭代方法的特征对求解 331
11.1.4 特征向量矩阵 333
11.1.5 习题 333
11.2 主成分分析 334
11.2.1 一个示例 334
11.2.2 利用特征向量进行降维 337
11.2.3 距离矩阵 338
11.2.4 习题 339
11.3 奇异值分解 339
11.3.1 SVD的定义 339
11.3.2 SVD解析 341
11.3.3 基于SVD的降维 342
11.3.4 将较低奇异值置为0后有效的原因 343
11.3.5 使用概念进行查询处理 344
11.3.6 矩阵SVD的计算 345
11.3.7 习题 346
11.4 CUR分解 347
11.4.1 CUR的定义 347
11.4.2 合理选择行和列 348
11.4.3 构建中间矩阵 349
11.4.4 完整的CUR分解 350
11.4.5 去除重复行和列 351
11.4.6 习题 352
11.5 小结 352
11.6 参考文献 353
第 12章 大规模机器学习 354
12.1 机器学习模型 354
12.1.1 训练集 354
12.1.2 一些例子 355
12.1.3 机器学习方法 357
12.1.4 机器学习架构 358
12.1.5 习题 360
12.2 感知机 360
12.2.1 训练阈值为0的感知机 361
12.2.2 感知机的收敛性 363
12.2.3 Winnow算法 364
12.2.4 允许阈值变化的情况 365
12.2.5 多类感知机 366
12.2.6 变换训练集 367
12.2.7 感知机的问题 368
12.2.8 感知机的并行实现 369
12.2.9 习题 370
12.3 支持向量机 371
12.3.1 支持向量机的机理 371
12.3.2 超平面归一化 372
12.3.3 寻找逼近分界面 374
12.3.4 基于梯度下降法求解SVM 380
12.3.6 SVM的并行实现 380
12.3.7 习题 381
12.4 近邻学习 381
12.4.1 近邻计算的框架 381
12.4.2 近邻学习 382
12.4.3 学习一维函数 383
12.4.4 核回归 384
12.4.5 处理高维欧氏空间数据 385
12.4.6 对非欧距离的处理 386
12.4.7 习题 386
12.5 决策树 387
12.5.1 使用决策树 387
12.5.2 不纯度度量方法 389
12.5.3 决策树节点的设计 390
12.5.4 选择基于数值型特征的测试 390
12.5.5 选择基于分类型特征的测试 392
12.5.6 决策树的并行设计 393
12.5.7 节点剪枝 394
12.5.8 随机森林 395
12.5.9 习题 396
12.6 各种学习方法的比较 397
12.7 小结 397
12.8 参考文献 399
第 13章 神经网络与深度学习 400
13.1 神经网络简介 400
13.1.1 神经网络概述 402
13.1.2 节点间的连接 403
13.1.3 卷积神经网络 403
13.1.4 神经网络的设计事项 404
13.1.5 习题 404
13.2 密集型前馈网络 405
13.2.1 基于线性代数的记法 405
13.2.2 激活函数 406
13.2.3 sigmoid函数 407
13.2.4 双曲正切函数 407
13.2.5 softmax函数 408
13.2.6 修正线性单元 409
13.2.7 损失函数 410
13.2.8 回归损失函数 410
13.2.9 分类损失函数 411
13.2.10 习题 412
13.3 反向传播与梯度下降 413
13.3.1 计算图 414
13.3.2 梯度、雅可比矩阵与链式法则 415
13.3.3 反向传播算法 416
13.3.4 梯度下降的迭代计算 418
13.3.5 张量 419
13.3.6 习题 420
13.4 卷积神经网络 420
13.4.1 卷积层 421
13.4.2 卷积与互相关 423
13.4.3 池化层 424
13.4.4 CNN架构 424
13.4.5 实现与训练 426
13.4.6 习题 427
13.5 循环神经网络 427
13.5.1 RNN的训练 428
13.5.2 梯度消失与爆炸 430
13.5.3 长短期记忆网络 431
13.5.4 习题 433
13.6 正则化 433
13.6.1 范式惩罚 434
13.6.2 dropout 434
13.6.3 提前停止 434
13.6.4 数据增强 435
13.7 小结 435
13.8 参考文献 436
^ 收 起
【作者简介】尤雷·莱斯科夫(Jure Leskovec)Pinterest公司首席科学家,斯坦福大学计算机科学系副教授,研究方向为大型社交和信息网络的数据挖掘。他的研究成果获得了很多奖项,如Microsoft Research Faculty Fellowship、Alfred P. Sloan Fellowship和Okawa Foundation Fellowship,还获得了很多论文奖,同时也被《纽约时报》《华尔街日报》《华盛顿邮报》《连线》、NBC、BBC和CBC等流行的社会媒体刊载。他还创建了斯坦福网络分析平台(SNAP)。阿南德·拉贾拉曼(Anand Rajaraman)数据库和Web技术领域领军者,硅谷连续创业者和风险投资人,斯坦福大学计算机科学系助理教授。自1996年起创立过多家公司,这些公司先后被亚马逊、谷歌和沃尔玛集团收购,而他本人历任亚马逊技术总监、沃尔玛负责全球电子商务业务的副总裁。之后创立了风投公司Milliways Ventures和Rocketship VC,投资过Facebook、Lyft等众多公司。作为学者,他主要研究数据库系统、Web和社交媒体,他的研究论文在学术会议上获得了多个奖项,他在2012年被Fast Company杂志列入“商界创造力100人”。杰弗里·大卫·厄尔曼(Jeffrey David Ullman)计算机科学家,美国国家工程院院士,2020年图灵奖得主。早年在贝尔实验室工作,之后任教于普林斯顿大学,十年后加入斯坦福大学直至退休,一生的科研、著书和育人成果卓著。他是ACM会员,曾获SIGMOD创新奖、高德纳奖、冯诺依曼奖等多项科研大奖;合著有“龙书”《编译原理》、数据库名著《数据库系统实现》等多部经典著作;培养的多名学生已成为数据库领域的专家,其中包括谷歌联合创始人Sergey Brin,本书第二作者也是他的得意弟子。目前担任Gradiance公司CEO。【译者简介】王斌博士小米AI实验室主任,NLP首席科学家。中国中文信息学会理事,《中文信息学报》编委。加入小米公司之前,是中科院研究员、博导及中科院大学教授。译有《信息检索导论》《大数据:互联网大规模数据挖掘与分布式处理》和《机器学习实战》等书。王达侃优刻得AI部门负责人,曾任WeWork Research & Applied Science中国区负责人,并曾在LinkedIn、Twitter和微软亚洲研究院负责AI以及大数据方向的研发工作。硕士毕业于美国斯坦福大学计算机系,本科毕业于上海交通大学ACM班。
^ 收 起
^ 收 起
本书由斯坦福大学“Web挖掘”课程的内容总结而成,主要关注极大规模数据的挖掘。书中包括分布式文件系统、相似性搜索、搜索引擎技术、频繁项集挖掘、聚类算法、广告管理及推荐系统、社会网络图挖掘和大规模机器学习等主要内容。第3 版新增了决策树、神经网络和深度学习等内容。几乎每节都有对应的习题,以此来巩固所讲解的内容。读者还可以从网上获取相关拓展资料。
比价列表