推荐系统开发实战 内容简介
过程完整:从基本原理到实际项目开发 实例丰富:将理论学习落实到具体实践(共34个实例)简洁流畅:采用短段、短句,读来有顺流而下般流畅感实战性强:搭建新闻推荐系统、音乐推荐系统、图书推荐系统学习无忧:免费提供书中用到的素材和源代码后继服务:读者可加入本书QQ学习群在线交流
推荐系统开发实战 本书特色
本书是一本关于推荐系统从入门到进阶的读物,采用“理论 实践”的形式展开,不仅对各种推荐算法进行了介绍,还对算法所涉及的基础理论知识进行了补充。
全书共分为3篇:
- 第1篇是“推荐系统的背景介绍和入门”,包括走进推荐系统、搭建你的*个推荐系统和推荐系统常用数据集介绍;
- 第2篇是“推荐系统涉及的算法介绍、冷启动和效果评估”,包括数据挖掘——让推荐系统更懂你、基于用户行为特征的推荐、基于标签的推荐、基于上下文的推荐、基于点击率预估的推荐、推荐系统中的冷启动和推荐系统中的效果评估;
- 第3篇是“推荐系统实例”,包括搭建一个新闻推荐系统、搭建一个音乐推荐系统、搭建一个图书推荐系统和业界推荐系统架构介绍。
-
书中的实例开发几乎都是基于公开的数据集进行的,当然也涉及一些网络中获取的数据,其*终目的都是让读者能够更好地理解推荐算法,更直观地认识推荐系统。
书中所涉及的数据集和实例代码都会提供给读者,这不仅在一定程度上方便读者学习,而且为以后的工作提供了便利。本书是一本关于推荐系统从入门到进阶的读物,采用“理论 实践”的形式展开,不仅对各种推荐算法进行了介绍,还对算法所涉及的基础理论知识进行了补充。全书共分为3篇:- 第1篇是“推荐系统的背景介绍和入门”,包括走进推荐系统、搭建你的*个推荐系统和推荐系统常用数据集介绍;- 第2篇是“推荐系统涉及的算法介绍、冷启动和效果评估”,包括数据挖掘——让推荐系统更懂你、基于用户行为特征的推荐、基于标签的推荐、基于上下文的推荐、基于点击率预估的推荐、推荐系统中的冷启动和推荐系统中的效果评估;- 第3篇是“推荐系统实例”,包括搭建一个新闻推荐系统、搭建一个音乐推荐系统、搭建一个图书推荐系统和业界推荐系统架构介绍。-书中的实例开发几乎都是基于公开的数据集进行的,当然也涉及一些网络中获取的数据,其*终目的都是让读者能够更好地理解推荐算法,更直观地认识推荐系统。书中所涉及的数据集和实例代码都会提供给读者,这不仅在一定程度上方便读者学习,而且为以后的工作提供了便利。本书非常适合有一定编程基础、对推荐系统感兴趣的读者,希望用推荐算法完成设计的高等院校计算机或电子信息专业的学生,准备开设推荐系统实践课的授课老师,学习过Python、希望进一步提升编程水平的开发者,初学数据挖掘、机器学习的算法工程师或数据分析师阅读使用。
推荐系统开发实战 目录
第1篇 推荐系统的背景介绍和入门∣第1章走进推荐系统 21.1从“啤酒与尿布”到推荐系统的前世今生 2∣1.1.1“啤酒与尿布” 2∣1.1.2推荐系统的前世今生 21.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在服务类产品中的应用 111.3学习本书需要的技能 12∣1.3.1Python基础 12∣1.3.2数据结构 14∣1.3.3工程能力 151.4如何学习本书 171.5知识导图 17第2章搭建你的**个推荐系统 192.1实例1:搭建电影推荐系统 19∣2.1.1利用Netflix数据集准备数据 19∣2.1.2使用Python表示数据 21∣2.1.3选择相似用户 23∣2.1.4为用户推荐相似用户喜欢的电影 24∣2.1.5分析效果 252.2总结:搭建推荐系统的一般步骤 26∣2.2.1准备数据 26∣2.2.2选择算法 27∣2.2.3模型训练 28∣2.2.4效果评估 282.3知识导图 28第3章推荐系统常用数据集介绍 293.1MovieLens数据集 29∣3.1.1README 29∣3.1.2ratings.dat 29∣3.1.3movies.dat 31∣3.1.4users.dat 343.2Book-Crossings数据集 36∣3.2.1BX-Book-Ratings.csv 37∣3.2.2BX-Books.csv 39∣3.2.3BX-Users.csv 393.3Last.fm数据集 41∣3.3.1README 41∣3.3.2artists.dat 41∣3.3.3tags.dat 41∣3.3.4user_artists.dat 42∣3.3.5user_friends.dat 42∣3.3.6uses_taggedartists.dat 42∣3.3.7user_taggedartists-timestamps.dat 423.4FourSquare数据集 43∣3.4.1users.dat 43∣3.4.2venues.dat 44∣3.4.3checkins.dat 44∣3.4.4socialgraph.dat 44∣3.4.5ratings.dat 453.5Kaggle比赛之retailrocket 数据集 46∣3.5.1events.csv 47∣3.5.2category_tree.csv 49∣3.5.3item_properties.csv 493.6场景分析 493.7知识导图 50∣===第2篇 推荐系统涉及的算法介绍、冷启动和效果评估∣第4章数据挖掘——让推荐系统更懂你 524.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相似度计算 714.2数据分类 74∣4.2.1K*近邻算法 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中的分类效果评估 924.3数据聚类 92∣4.3.1kMeans算法 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中的聚类效果评估 1024.4关联分析 103∣4.4.1Apriori算法 103∣4.4.2实例12:基于Apriori算法实现频繁项集和相关规则挖掘 1064.5知识导图 110∣第5章基于用户行为特征的推荐 1115.1用户行为分类 1115.2基于内容的推荐算法 112∣5.2.1算法原理——从“构造特征”到“判断用户是否喜欢” 112∣5.2.2实例13:对手机属性进行特征建模 1155.3实例14:编写一个基于内容推荐算法的电影推荐系统 117∣5.3.1了解实现思路 117∣5.3.2准备数据 119∣5.3.3选择算法 122∣5.3.4模型训练 122∣5.3.5效果评估 1235.4基于近邻的推荐算法 124∣5.4.1UserCF算法的原理——先“找到相似同户”,再“找到他们喜欢的物品” 124∣5.4.2ItemCF算法的原理——先“找到用户喜欢的物品”,再“找到喜欢物品的相似物品”1315.5实例15:编写一个基于UserCF算法的电影推荐系统 137∣5.5.1了解实现思路 138∣5.5.2准备数据 138∣5.5.3选择算法 138∣5.5.4模型训练 138∣5.5.5效果评估 1415.6实例16:编写一个基于ItemCF算法的电影推荐系统 141∣5.6.1了解实现思路 141∣5.6.2准备数据 142∣5.6.3选择算法 142∣5.6.4模型训练 142∣5.6.5效果评估 1445.7对比分析:UserCF算法和ItemCF算法 1455.8对比分析:基于内容和基于近邻 1465.9基于隐语义模型的推荐算法 147∣5.9.1LFM概述 147∣5.9.2LFM算法理解 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效果评估 1585.11知识导图 159∣第6章基于标签的推荐 1616.1基于标签系统的应用 161∣6.1.1Last.fm 161∣6.1.2Delicious 162∣6.1.3豆瓣 163∣6.1.4网易云音乐 1636.2数据标注与关键词提取 165∣6.2.1推荐系统中的数据标注 165∣6.2.2推荐系统中的关键词提取 167∣6.2.3标签的分类 1686.3实例18:基于TF-IDF算法提取商品标题的关键词 169∣6.3.1了解TF-IDF算法 169∣6.3.2认识商品标题描述 170∣6.3.3提取关键词 1706.4基于标签的推荐系统 174∣6.4.1标签评分算法 174∣6.4.2标签评分算法改进 176∣6.4.3标签基因 177∣6.4.4用户兴趣建模 1776.5实例19:利用标签推荐算法实现艺术家的推荐 178∣6.5.1了解实现思路 178∣6.5.2准备数据 178∣6.5.3选择算法 179∣6.5.4模型训练 179∣6.5.5效果评估 1826.6知识导图 182∣第7章基于上下文的推荐 1847.1基于时间特征的推荐 184∣7.1.1时间效应介绍 184∣7.1.2时间效应分析 187∣7.1.3推荐系统的实时性 194∣7.1.4协同过滤中的时间因子 1957.2实例20:实现一个“增加时间衰减函数的协同过滤算法” 197∣7.2.1在UserCF算法中增加时间衰减函数 197∣7.2.2在ItemCF算法中增加时间衰减函数 1997.3基于地域和热度特征的推荐 200∣7.3.1为什么要将地域和热度特征放在一起 201∣7.3.2解读LARS中的地域特征 202∣7.3.3基于地域和热度的推荐算法 2047.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其他上下文信息 2107.6知识导图 210∣第8章基于点击率预估的推荐 2128.1传统推荐算法的局限和应用 212∣8.1.1传统推荐算法的局限 212∣8.1.2传统推荐算法的应用 2138.2点击率预估在推荐系统中的应用 2148.3集成学习 214∣8.3.1集成学习概述 215∣8.3.2Boosting算法(提升法) 215∣8.3.3Bagging算法(自助法) 216∣8.3.4Stacking算法(融合法) 2178.4导数、偏导数、方向导数、梯度 217∣8.4.1导数 217∣8.4.2偏导数 217∣8.4.3方向导数 218∣8.4.4梯度 219∣8.4.5梯度下降 2198.5GBDT算法 222∣8.5.1Gradient Boosting方法 223∣8.5.2决策树 223∣8.5.3GBDT算法的原理 2248.6实例22:基于GBDT算法预估电信客户流失 227∣8.6.1了解实现思路 227∣8.6.2准备数据 229∣8.6.3选择算法 232∣8.6.4模型训练 232∣8.6.5效果评估 2348.7回归分析 236∣8.7.1什么是回归分析 236∣8.7.2回归分析算法分类 236∣8.8Logistic Regression算法 237∣8.8.1Sigmoid函数 237∣8.8.2LR为什么要使用Sigmoid函数 239∣8.8.3LR的算法原理分析 2408.9实例23:基于LR算法预估电信客户流失 241∣8.9.1准备数据 242∣8.9.2选择算法 242∣8.9.3模型训练 242∣8.9.4效果评估 2438.10GBDT+LR的模型融合 245∣8.10.1GBDT+LR模型融合概述 245∣8.10.2为什么选择GBDT和LR进行模型融合 246∣8.10.3GBDT+LR模型融合的原理 2468.11实例24:基于GBDT和LR算法预估电信客户流失 247∣8.11.1准备数据 247∣8.11.2选择算法 247∣8.11.3模型训练 247∣8.11.4效果评估 2488.12知识导图 251∣第9章推荐系统中的冷启动 2529.1冷启动介绍 252∣9.1.1冷启动的分类 252∣9.1.2冷启动的几种实现方法 2529.2基于热门数据推荐实现冷启动 2539.3利用用户注册信息实现冷启动 254∣9.3.1注册信息分析 254∣9.3.2实例25:分析Book-Crossings数据集中的共性特征 255∣9.3.3实现原理 2619.4利用用户上下文信息实现冷启动 261∣9.4.1设备信息特征 262∣9.4.2时间地域信息特征 262∣9.4.3实现原理 2629.5利用第三方数据实现冷启动 2639.6利用用户和系统之间的交互实现冷启动 263∣9.6.1实现原理 263∣9.6.2推荐系统中实时交互的应用 265∣9.6.3实例26:用户实时交互推荐系统设计 2669.7利用物品的内容属性实现冷启动 267∣9.7.1物品内容属性分析 267∣9.7.2物品信息的使用 2689.8利用专家标注数据实现冷启动 2699.9知识导图 270∣第10章推荐系统中的效果评估 27110.1用户调研 27110.2在线评估 27210.3在线实验方式——ABTest 272∣10.3.1ABTest介绍 272∣10.3.2ABTest流程 272∣10.3.3ABTest的注意事项 27310.4在线评估指标 274∣10.4.1点击率 275∣10.4.2转化率 275∣10.4.3网站成交额 27510.5离线评估 27610.6拆分数据集 276∣10.6.1留出法 277∣10.6.2K-折交叉验证法 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()函数演示交叉验证 28110.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非准确度指标 29210.8知识导图 296∣===第3篇 推荐系统实例∣第11章实例32:搭建一个新闻推荐系统 29811.1准备数据 29811.2预处理数据 298∣11.2.1原始数据加工 298∣11.2.2新闻热度值计算 299∣11.2.3新闻相似度计算 300∣11.2.4指定标签下的新闻统计 30211.3设计架构 30311.4实现系统 304∣11.4.1准备环境 304∣11.4.2实现后端接口 304∣11.4.3实现前端界面 309∣11.4.4系统演示 30911.5代码复现 311∣11.5.1安装依赖 311∣11.5.2数据入库 312∣11.5.3修改配置 312∣11.5.4项目启动 31211.6知识导图 312∣第12章实例33:搭建一个音乐推荐系统 31412.1准备数据 31412.2预处理数据 314∣12.2.1计算歌曲、歌手、用户相似度 314∣12.2.2计算用户推荐集 315∣12.2.3数据导入数据库 31912.3设计架构 32112.4实现系统 322∣12.4.1准备环境 322∣12.4.2实现后端接口 322∣12.4.3实现前端界面 324∣12.4.4系统演示 32412.5代码复现 327∣12.5.1安装依赖 327∣12.5.2数据入库 327∣12.5.3修改配置 327∣12.5.4项目启动 32812.6知识导图 328∣第13章实例34:搭建一个图书推荐系统 32913.1准备数据 32913.2预处理数据 329∣13.2.1原始数据加工 329∣13.2.2数据导入数据库 331∣13.2.3模型准备 33113.3设计架构 33213.4实现系统 333∣13.4.1准备环境 333∣13.4.2实现后端接口 333∣13.4.3实现前端界面 336∣13.4.4系统演示 33613.5代码复现 33813.6知识导图 338∣第14章业界推荐系统架构介绍 34014.1概述 34014.2架构介绍 34014.3召回内容 34214.4计算排序 343∣14.4.1特征工程 343∣14.4.2特征分类 343∣14.4.3排序算法 34314.5物品过滤和展示 344∣14.5.1物品过滤 344∣14.5.2物品展示 34414.6效果评估 34414.7知识导图 345
推荐系统开发实战 作者简介
高阳团现就职于京东,任职算法工程师一直从事于推荐系统相关的研究和开发工作对推荐排序、深度学习、强化学习具有浓厚兴趣擅长推荐排序、Spark、深度学习。