码迷,mamicode.com
首页 > 编程语言 > 详细

协同过滤推荐算法

时间:2018-07-24 21:15:26      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:5*   需要   皮尔逊   1.0   向量   推荐   一个用户   相似度   相关   

协同过滤是通过将用户和其他用户和的数据进行对比来实现推荐。

我们不利用专家所给出的重要属性来描述物品从而计算他们之间的相似度,而是利用用户对他们的意见来计算相似度,这就是协同过滤中所使用的方法。它不关心物品的描述属性,而是严格的按照许多用户的观点来计算相似度。

相似度的度量一种是欧式距离,一种是皮尔逊相关系数,另一种距离计算方法就是余弦相似度。

皮尔逊相关系数的取值范围是从-1到+1,我们通过0.5+0.5*corrcoef()这个函数计算,并且把取值范围归一化到0和1之间

余弦相似度是计算两个向量夹角的余弦值。如果夹角为90度,则相似度为0;如果两个向量的方向相同,则相似度为1.0.同皮尔逊相关系数一样,余弦相似度的取值范围也在-1到+1之间。因此我们也可以将它归一化到0和1之间。

基于物品相似度计算的时间会随物品数量的增加而增加,基于用户的相似度计算的时间复杂度则会随用户数量的增加而增加。

推荐引擎系统的评价指标是称为最小均方根误差(RMSE)的指标,它首先计算均方误差的平均值然后取其平方根。

推荐系统的工作过程是:给定一个用户,系统会为此用户返回N个最好的推荐菜。为了实现这一点,则需要我们做到:

(1)寻找用户没有评级的菜肴,即在用户-五哦i你矩阵中的0值

(2)在用户没有评级的所有物品中,对每个物品预计一个可能的评级分数,这就是说,我们认为用户可能会对物品的打分(这就是我们计算相似度的初衷);

(3)对这些物品的评分从高到低进行排序,返回前N个物品

协同过滤推荐算法

标签:5*   需要   皮尔逊   1.0   向量   推荐   一个用户   相似度   相关   

原文地址:https://www.cnblogs.com/zhibei/p/9362579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!