简介
最近在做关于健康商城的项目,在首页需要向用户展示食品推荐,要求采用协同过滤的方式展示推荐的食品,第一次基础关于算法的问题,好吧,下面看下我的研究成果吧!
基于协同过滤算法(UserCF)
协同过滤算法
是基于用户的协同过滤是诞最早的,原理也比较简单,基于协同过滤的推荐算法被广泛的运用在推荐系统中,比如影视推荐、猜你喜欢等、邮件过滤等。该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。
实现流程: 如下图所示:
注:用户G为大众群体,在用户G中找到两位及两位以上用户匹配用户A没有喜好或浏览过的商品推荐给用户A,最多推荐10条数据。
注:采用的是皮尔逊(pearson)相关系数计算(余弦相似度:越接近于 1 ,说明两个用户的浏览行为越相似),浏览商品相同,并且大于五次,加入到皮尔逊(pearson)相关系数进行计算。
原理(我的理解)
当用户A需要个性化推荐的时候,可以先找到和他兴趣详细的用户集群G,然后把G喜欢的并且A没有的物品推荐给A,这就是基于用户的协同过滤。
皮尔逊相关系数计算
我项目中采用的是皮尔逊相关系数计算
皮尔逊相关系数
:皮尔逊相关系数公式实际上就是在计算夹角余弦之前将两个向量减去各个样本的平均值,达到中心化的目的。从知友的回答可以明白,皮尔逊相关函数是余弦相似度在维度缺失上面的一种改进方法。
总结
通过这次的问题,发现了自己的不足之处,大家有需要源码的可以私信我哦!