python图书推荐系统的设计_在线图书推荐系统的实现含源码(协同过滤)

项目简介源码地址 http://github.com/XuefengHuang/RecommendationSystem

基于Spark, Python Flask, 和 Book-Crossing Dataset 的在线图书推荐系统。

该图书推荐系统参考http://github.com/jadianes/spark-movie-lens。

修改数据处理部分,使其支持Book-Crossing Dataset。

适合初学者学习如何搭建一个推荐系统,本文底下附有其他数据,可供参考学习。

基于模型的协同过滤应用---图书推荐

本文实现对用户推荐图书的简单应用。推荐算法:

在我们的在线图书推荐系统中,我们借用Spark的ALS算法的训练和预测函数,每次收到新的数据后,将其更新到训练数据集中,然后更新ALS训练得到的模型。

假设我们有一组用户,他们表现出了对一组图书的喜好。用户对一本图书的喜好程度越高,就会给其更高的评分,范围是从1到5。我们来通过一个矩阵来展示它,行代表用户,列代表图书。用户对图书的评分。所有的评分范围从1到5,5代表喜欢程度最高。第一个用户(行1)对第一个图书(列1)的评分是4。空的单元格代表用户未给图书评价。

python图书推荐系统的设计_在线图书推荐系统的实现含源码(协同过滤)_第1张图片

用户图书评分表.png

矩阵因子分解(如奇异值分解,奇异值分解+ +)将项和用户都转化成了相同的潜在空间,它所代表了用户和项之间的潜相互作用。矩阵分解背后的原理是潜在特征代表了用户如何给项进行评分。给定用户和项的潜在描述,我们可以预测用户将会给还未评价的项多少评分。

python图书推荐系统的设计_在线图书推荐系统的实现含源码(协同过滤)_第2张图片

矩阵因子分解.png数据描述:评分数据文件:

"User-ID";"ISBN";"Book-Rating""276725";"034545104X";"0""276726";"0155061224";"5""276727";"0446520802";"0""276729";"052165615X";"3""276729";"0521795028";"6""276733";"2080674722";"0""276736";"3257224281";"8"

图书数据文件:

"ISBN";"Book-Title";"Book-Author";"Year-Of-Publication";"Publisher";"Image-URL-S";"Image-URL-M";"Image-URL-L""0195153448";"Classical Mythology";&#

你可能感兴趣的:(python图书推荐系统的设计)