基于用户的协同过滤算法java实现,皮尔逊相关系数算法

您所在的位置:网站首页 python计算pearson相关系数 基于用户的协同过滤算法java实现,皮尔逊相关系数算法

基于用户的协同过滤算法java实现,皮尔逊相关系数算法

2023-07-08 23:52| 来源: 网络整理| 查看: 265

        基于用户的协同过滤算法,基本思想为当需要根据一个用户的信息对他进行针对性的推荐时,可以从用户库中计算出该用户的最邻用户,也就是信息、喜好最相近的用户,通过最邻用户的喜好来对当前用户来进行推荐。

        以电影推荐为示例,一般分为两个步骤,第一步是计算出当前用户的最邻用户,第二步是将最邻用户看过而当前用户没有看过的电影推荐给用户。本课题在计算最邻用户时,采用的也是权重算法,根据用户之间的性别、年龄、喜好分类、相同电影的评分以及观影历史的喜好标签分类分别计算分数,然后按照一定权重计算总分,而在计算喜好分类、相同电影的评分以及观影历史的喜好标签分类的分数时,则是根据两个用户的数据计算皮尔森相关系数。皮尔森相关系数是指两个变量之间的关系程度,介于-1到1之间,绝对值越大,两个变量之间关联性越高,也就是两个用户之间喜好越相近。通过对用户喜好、评分等数据的皮尔森相关系数计算,加上用户的性别、年龄的关联性,即可算出用户的最邻用户,继而达到协同过滤的效果。

        流程图设计如下:

              设计思路:

/**  * 基于用户的计算  * 主要原理为根据用户特性以及观影历史的电影特性找到最邻用户,然后推荐最邻用户的观看历史  * 计算最邻用户的计算方式为权重法,总分为100,  * 分数比例:  * (1)年龄比占5%  * (2)性别比占5%  * (3)用户喜好标签的皮尔森相关系数占30%  * (4)用户观影历史里面电影对应的喜好构成的列表的皮尔森相关系数占30%(每种喜好各自计算比例)  * (5)相同电影评分的皮尔森相关系数占30%  * 计算过程  * (1)用户的年龄比、性别比、用户喜好标签的皮尔森相关系数、用户观影历史里面电影对应的喜好构成的列表的皮尔森相关系数、相同电影评分的皮尔森相关系数  * (2)查询到最近邻用户  * (3)他的播放历史中用户没有的歌曲,同时也必须是用户喜欢的类型  */

此方法中关键点在于皮尔逊相关系数(r)计算。

皮尔逊相关系数可以反映两个变量之间的相关性大小,在自然科学领域中,皮尔逊相关系数广泛用于度量两个变量之间的相关程度,其值介于-1与1之间。它是由卡尔·皮尔逊从弗朗西斯·高尔顿在19世纪80年代提出的一个相似却又稍有不同的想法演变而来的。这个相关系数也称作“皮尔逊积矩相关系数”。

当r>0时,表示两变量正相关,r



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3