欢迎访问学兔兔,学习、交流 分享 !

返回首页 |
当前位置: 首页 > 书籍手册>计算机与网络 >推荐系统开发实战 高阳团 2019年版

推荐系统开发实战 高阳团 2019年版

收藏
推荐:升级会员 无限下载,节约时间成本!
关键词:实战   推荐   高阳   开发   系统
资源简介
推荐系统开发实战
作者:高阳团
出版时间: 2019年版
内容简介
  本书是一本关于推荐系统从入门到进阶的读物,采用“理论+实践”的形式展开,不仅对各种推荐算法进行了介绍,还对算法所涉及的基础理论知识进行了补充。 全书共分为3篇: - 第1篇是“推荐系统的背景介绍和入门”,包括走进推荐系统、搭建你的一个推荐系统和推荐系统常用数据集介绍; - 第2篇是“推荐系统涉及的算法介绍、冷启动和效果评估”,包括数据挖掘——让推荐系统更懂你、基于用户行为特征的推荐、基于标签的推荐、基于上下文的推荐、基于点击率预估的推荐、推荐系统中的冷启动和推荐系统中的效果评估; - 第3篇是“推荐系统实例”,包括搭建一个新闻推荐系统、搭建一个音乐推荐系统、搭建一个图书推荐系统和业界推荐系统架构介绍。 书中的实例开发几乎都是基于公开的数据集进行的,当然也涉及一些网络中获取的数据,其最终目的都是让读者能够更好地理解推荐算法,更直观地认识推荐系统。 书中所涉及的数据集和实例代码都会提供给读者,这不仅在一定程度上方便读者学习,而且为以后的工作提供了便利。 本书非常适合有一定编程基础、对推荐系统感兴趣的读者,希望用推荐算法完成设计的高等院校计算机或电子信息专业的学生,准备开设推荐系统实践课的授课老师,学习过Python、希望进一步提升编程水平的开发者,初学数据挖掘、机器学习的算法工程师或数据分析师阅读使用。
目录
==第1篇 推荐系统的背景介绍和入门
=
第1章 走进推荐系统 2
1.1 从“啤酒与尿布”到推荐系统的前世今生 2
∣1.1.1 “啤酒与尿布” 2
∣1.1.2 推荐系统的前世今生 2
1.2 推荐系统可以做什么 4
∣1.2.1 什么是推荐系统 4
∣1.2.2 在电商类产品中的应用 5
∣1.2.3 在社交类产品中的应用 6
∣1.2.4 在音乐类产品中的应用 8
∣1.2.5 在视频类产品中的应用 9
∣1.2.6 在阅读类产品中的应用 10
∣1.2.7 在服务类产品中的应用 11
1.3 学习本书需要的技能 12
∣1.3.1 Python基础 12
∣1.3.2 数据结构 14
∣1.3.3 工程能力 15
1.4 如何学习本书 17
1.5 知识导图 17
=
第2章 搭建你的第一个推荐系统 19
2.1 实例1:搭建电影推荐系统 19
∣2.1.1 利用Netflix数据集准备数据 19
∣2.1.2 使用Python表示数据 21
∣2.1.3 选择相似用户 23
∣2.1.4 为用户推荐相似用户喜欢的电影 24
∣2.1.5 分析效果 25
2.2 总结:搭建推荐系统的一般步骤 26
∣2.2.1 准备数据 26
∣2.2.2 选择算法 27
∣2.2.3 模型训练 28
∣2.2.4 效果评估 28
2.3 知识导图 28
=
第3章 推荐系统常用数据集介绍 29
3.1 MovieLens数据集 29
∣3.1.1 README 29
∣3.1.2 ratings.dat 29
∣3.1.3 movies.dat 31
∣3.1.4 users.dat 34
3.2 Book-Crossings数据集 36
∣3.2.1 BX-Book-Ratings.csv 37
∣3.2.2 BX-Books.csv 39
∣3.2.3 BX-Users.csv 39
3.3 Last.fm数据集 41
∣3.3.1 README 41
∣3.3.2 artists.dat 41
∣3.3.3 tags.dat 41
∣3.3.4 user_artists.dat 42
∣3.3.5 user_friends.dat 42
∣3.3.6 uses_taggedartists.dat 42
∣3.3.7 user_taggedartists-timestamps.dat 42
3.4 FourSquare数据集 43
∣3.4.1 users.dat 43
∣3.4.2 venues.dat 44
∣3.4.3 checkins.dat 44
∣3.4.4 socialgraph.dat 44
∣3.4.5 ratings.dat 45
3.5 Kaggle比赛之retailrocket 数据集 46
∣3.5.1 events.csv 47
∣3.5.2 category_tree.csv 49
∣3.5.3 item_properties.csv 49
3.6 场景分析 49
3.7 知识导图 50
=
==第2篇 推荐系统涉及的算法介绍、冷启动和效果评估
=
第4章 数据挖掘——让推荐系统更懂你 52
4.1 数据预处理 52
∣4.1.1 数据标准化 52
∣4.1.2 实例2:实现数据的标准化 54
∣4.1.3 数据离散化 56
∣4.1.4 实例3:基于信息熵的数据离散化 58
∣4.1.5 数据抽样 61
∣4.1.6 数据降维 63
∣4.1.7 实例4:对鸢尾花数据集特征进行降维 66
∣4.1.8 数据清理 68
∣4.1.9 相似度计算 71
4.2 数据分类 74
∣4.2.1 K最近邻算法 74
∣4.2.2 实例5:利用KNN算法实现性别判定 75
∣4.2.3 决策树算法 77
∣4.2.4 实例6:构建是否举办活动的决策树 80
∣4.2.5 朴素贝叶斯算法 84
∣4.2.6 实例7:基于朴素贝叶斯算法进行异常账户检测 87
∣4.2.7 分类器的评估 90
∣4.2.8 实例8:scikit-learn中的分类效果评估 92
4.3 数据聚类 92
∣4.3.1 kMeans算法 92
∣4.3.2 实例9:基于kMeans算法进行商品价格聚类 95
∣4.3.3 二分-kMeans算法 98
∣4.3.4 实例10:基于二分-kMeans算法进行商品价格聚类 99
∣4.3.5 聚类算法的评估 100
∣4.3.6 实例11:scikit-learn中的聚类效果评估 102
4.4 关联分析 103
∣4.4.1 Apriori算法 103
∣4.4.2 实例12:基于Apriori算法实现频繁项集和相关规则挖掘 106
4.5 知识导图 110
=
第5章 基于用户行为特征的推荐 111
5.1 用户行为分类 111
5.2 基于内容的推荐算法 112
∣5.2.1 算法原理——从“构造特征”到“判断用户是否喜欢” 112
∣5.2.2 实例13:对手机属性进行特征建模 115
5.3 实例14:编写一个基于内容推荐算法的电影推荐系统 117
∣5.3.1 了解实现思路 117
∣5.3.2 准备数据 119
∣5.3.3 选择算法 122
∣5.3.4 模型训练 122
∣5.3.5 效果评估 123
5.4 基于近邻的推荐算法 124
∣5.4.1 UserCF算法的原理——先“找到相似同户”,再“找到他们喜欢的物品” 124
∣5.4.2 ItemCF算法的原理——先“找到用户喜欢的物品”,再“找到喜欢物品的相似物品” 131
5.5 实例15:编写一个基于UserCF算法的电影推荐系统 137
∣5.5.1 了解实现思路 138
∣5.5.2 准备数据 138
∣5.5.3 选择算法 138
∣5.5.4 模型训练 138
∣5.5.5 效果评估 141
5.6 实例16:编写一个基于ItemCF算法的电影推荐系统 141
∣5.6.1 了解实现思路 141
∣5.6.2 准备数据 142
∣5.6.3 选择算法 142
∣5.6.4 模型训练 142
∣5.6.5 效果评估 144
5.7 对比分析:UserCF算法和ItemCF算法 145
5.8 对比分析:基于内容和基于近邻 146
5.9 基于隐语义模型的推荐算法 147
∣5.9.1 LFM概述 147
∣5.9.2 LFM算法理解 148
5.10 实例17:编写一个基于LFM的电影推荐系统 152
∣5.10.1 了解实现思路 152
∣5.10.2 准备数据 152
∣5.10.3 选择算法 154
∣5.10.4 模型训练 155
∣5.10.5 效果评估 158
5.11 知识导图 159
=
第6章 基于标签的推荐 161
6.1 基于标签系统的应用 161
∣6.1.1 Last.fm 161
∣6.1.2 Delicious 162
∣6.1.3 豆瓣 163
∣6.1.4 网易云音乐 163
6.2 数据标注与关键词提取 165
∣6.2.1 推荐系统中的数据标注 165
∣6.2.2 推荐系统中的关键词提取 167
∣6.2.3 标签的分类 168
6.3 实例18:基于TF-IDF算法提取商品标题的关键词 169
∣6.3.1 了解TF-IDF算法 169
∣6.3.2 认识商品标题描述 170
∣6.3.3 提取关键词 170
6.4 基于标签的推荐系统 174
∣6.4.1 标签评分算法 174
∣6.4.2 标签评分算法改进 176
∣6.4.3 标签基因 177
∣6.4.4 用户兴趣建模 177
6.5 实例19:利用标签推荐算法实现艺术家的推荐 178
∣6.5.1 了解实现思路 178
∣6.5.2 准备数据 178
∣6.5.3 选择算法 179
∣6.5.4 模型训练 179
∣6.5.5 效果评估 182
6.6 知识导图 182
=
第7章 基于上下文的推荐 184
7.1 基于时间特征的推荐 184
∣7.1.1 时间效应介绍 184
∣7.1.2 时间效应分析 187
∣7.1.3 推荐系统的实时性 194
∣7.1.4 协同过滤中的时间因子 195
7.2 实例20:实现一个“增加时间衰减函数的协同过滤算法” 197
∣7.2.1 在UserCF算法中增加时间衰减函数 197
∣7.2.2 在ItemCF算法中增加时间衰减函数 199
7.3 基于地域和热度特征的推荐 200
∣7.3.1 为什么要将地域和热度特征放在一起 201
∣7.3.2 解读LARS中的地域特征 202
∣7.3.3 基于地域和热度的推荐算法 204
7.4 实例21:创建一个基于地域和热度的酒店推荐系统 206
∣7.4.1 了解实现思路 206
∣7.4.2 准备数据 207
∣7.4.3 选择算法 207
∣7.4.4 模型训练 207
∣7.4.5 效果评估 210
7.5 其他上下文信息 210
7.6 知识导图 210
=
第8章 基于点击率预估的推荐 212
8.1 传统推荐算法的局限和应用 212
∣8.1.1 传统推荐算法的局限 212
∣8.1.2 传统推荐算法的应用 213
8.2 点击率预估在推荐系统中的应用 214
8.3 集成学习 214
∣8.3.1 集成学习概述 215
∣8.3.2 Boosting算法(提升法) 215
∣8.3.3 Bagging算法(自助法) 216
∣8.3.4 Stacking算法(融合法) 217
8.4 导数、偏导数、方向导数、梯度 217
∣8.4.1 导数 217
∣8.4.2 偏导数 217
∣8.4.3 方向导数 218
∣8.4.4 梯度 219
∣8.4.5 梯度下降 219
8.5 GBDT算法 222
∣8.5.1 Gradient Boosting方法 223
∣8.5.2 决策树 223
∣8.5.3 GBDT算法的原理 224
8.6 实例22:基于GBDT算法预估电信客户流失 227
∣8.6.1 了解实现思路 227
∣8.6.2 准备数据 229
∣8.6.3 选择算法 232
∣8.6.4 模型训练 232
∣8.6.5 效果评估 234
8.7 回归分析 236
∣8.7.1 什么是回归分析 236
∣8.7.2 回归分析算法分类 236
8.8 Logistic Regression算法 237
∣8.8.1 Sigmoid函数 237
∣8.8.2 LR为什么要使用Sigmoid函数 239
∣8.8.3 LR的算法原理分析 240
8.9 实例23:基于LR算法预估电信客户流失 241
∣8.9.1 准备数据 242
∣8.9.2 选择算法 242
∣8.9.3 模型训练 242
∣8.9.4 效果评估 243
8.10 GBDT+LR的模型融合 245
∣8.10.1 GBDT+LR模型融合概述 245
∣8.10.2 为什么选择GBDT和LR进行模型融合 246
∣8.10.3 GBDT+LR模型融合的原理 246
8.11 实例24:基于GBDT和LR算法预估电信客户流失 247
∣8.11.1 准备数据 247
∣8.11.2 选择算法 247
∣8.11.3 模型训练 247
∣8.11.4 效果评估 248
8.12 知识导图 251
=
9章 推荐系统中的冷启动 252
9.1 冷启动介绍 252
∣9.1.1 冷启动的分类 252
∣9.1.2 冷启动的几种实现方法 252
9.2 基于热门数据推荐实现冷启动 253
9.3 利用用户注册信息实现冷启动 254
∣9.3.1 注册信息分析 254
∣9.3.2 实例25:分析Book-Crossings数据集中的共性特征 255
∣9.3.3 实现原理 261
9.4 利用用户上下文信息实现冷启动 261
∣9.4.1 设备信息特征 262
∣9.4.2 时间地域信息特征 262
∣9.4.3 实现原理 262
9.5 利用第三方数据实现冷启动 263
9.6 利用用户和系统之间的交互实现冷启动 263
∣9.6.1 实现原理 263
∣9.6.2 推荐系统中实时交互的应用 265
∣9.6.3 实例26:用户实时交互推荐系统设计 266
9.7 利用物品的内容属性实现冷启动 267
∣9.7.1 物品内容属性分析 267
∣9.7.2 物品信息的使用 268
9.8 利用专家标注数据实现冷启动 269
9.9 知识导图 270
=
10章 推荐系统中的效果评估 271
10.1 用户调研 271
10.2 在线评估 272
10.3 在线实验方式——ABTest 272
∣10.3.1 ABTest介绍 272
∣10.3.2 ABTest流程 272
∣10.3.3 ABTest的注意事项 273
10.4 在线评估指标 274
∣10.4.1 点击率 275
∣10.4.2 转化率 275
∣10.4.3 网站成交额 275
10.5 离线评估 276
10.6 拆分数据集 276
∣10.6.1 留出法 277
∣10.6.2 K-折交叉验证法 277
∣10.6.3 自助法 277
∣10.6.4 实例27:使用sklearn包中的train_test_split()函数进行数据集拆分 278
∣10.6.5 实例28:使用sklearn包中的KFold()函数产生交叉验证数据集 280
∣10.6.6 实例29:使用sklearn包中的cross_validate()函数演示交叉验证 281
10.7 离线评估指标 282
∣10.7.1 准确度指标之预测分类准确度指标 282
∣10.7.2 实例30:使用sklearn包中的metrics类预测分类准确度 288
∣10.7.3 准确度指标之预测评分准确度指标 290
∣10.7.4 实例31:使用sklearn包中的metrics类预测评分准确度 290
∣10.7.5 准确度指标之预测评分关联指标 291
∣10.7.6 准确度指标之排序准确度指标 292
∣10.7.7 非准确度指标 292
10.8 知识导图 296
=
第3篇 推荐系统实例
=
第11章 实例32:搭建一个新闻推荐系统 298
11.1 准备数据 298
11.2 预处理数据 298
∣11.2.1 原始数据加工 298
∣11.2.2 新闻热度值计算 299
∣11.2.3 新闻相似度计算 300
∣11.2.4 指定标签下的新闻统计 302
11.3 设计架构 303
11.4 实现系统 304
∣11.4.1 准备环境 304
∣11.4.2 实现后端接口 304
∣11.4.3 实现前端界面 309
∣11.4.4 系统演示 309
11.5 代码复现 311
∣11.5.1 安装依赖 311
∣11.5.2 数据入库 312
∣11.5.3 修改配置 312
∣11.5.4 项目启动 312
11.6 知识导图 312
=
第12章 实例33:搭建一个音乐推荐系统 314
12.1 准备数据 314
12.2 预处理数据 314
∣12.2.1 计算歌曲、歌手、用户相似度 314
∣12.2.2 计算用户推荐集 315
∣12.2.3 数据导入数据库 319
12.3 设计架构 321
12.4 实现系统 322
∣12.4.1 准备环境 322
∣12.4.2 实现后端接口 322
∣12.4.3 实现前端界面 324
∣12.4.4 系统演示 324
12.5 代码复现 327
∣12.5.1 安装依赖 327
∣12.5.2 数据入库 327
∣12.5.3 修改配置 327
∣12.5.4 项目启动 328
12.6 知识导图 328
=
第13章 实例34:搭建一个图书推荐系统 329
13.1 准备数据 329
13.2 预处理数据 329
∣13.2.1 原始数据加工 329
∣13.2.2 数据导入数据库 331
∣13.2.3 模型准备 331
13.3 设计架构 332
13.4 实现系统 333
∣13.4.1 准备环境 333
∣13.4.2 实现后端接口 333
∣13.4.3 实现前端界面 336
∣13.4.4 系统演示 336
13.5 代码复现 338
13.6 知识导图 338
=
第14章 业界推荐系统架构介绍 340
14.1 概述 340
14.2 架构介绍 340
14.3 召回内容 342
14.4 计算排序 343
∣14.4.1 特征工程 343
∣14.4.2 特征分类 343
∣14.4.3 排序算法 343
14.5 物品过滤和展示 344
∣14.5.1 物品过滤 344
∣14.5.2 物品展示 344
14.6 效果评估 344
14.7 知识导图 345
下载地址