基于云模型的协同过滤推荐算法代码实现(附源代码)
一、云模型介绍
针对传统推荐系统数据稀疏、相似性计算方法导致共同评分用户少的问题,提出利用云模型概念与定量数值转换的优势,研究云模型(百度百科查看概念)的个性化推荐改进算法。
云模型所表达的概念的整体特性可以用云的数字特征来反映,云用期望、熵、超熵这3个数字特征来整体表征一个概念。
二、推荐实现思路
1、构建用户-电影评分矩阵;
2、定义用户的电影评分频度向量(用户对所有电影的1-5分值打分次数),用户评分频度向量不关心具体项目的评分,而是关心用户对项目集的评分特征;
3、利用逆向云算法,根据用户的评分频度向量计算出云的三个参数表示的用户评分偏好,称为用户评分特征向量,记为
,其中,期望Ex反映了用户对所有项目的平均满意度,为偏好水平;熵En反映了用户评分的集中程度,为评分偏好的离散度;He为超熵的稳定度。
4、计算两个云之间的相似度。两个用户的评分特征向量的余弦夹角为两个云之间的相似度,即两个用户之间的相似度;
5、得到最近邻居;
6、得到推荐结果。
三、基于云模型的协同过滤推荐算法的优势
1、考虑了整体信息,避免了基于向量的相似度计算方式严格匹配对象属性的不足;
2、充分利用了用户评分数据的统计信息;
3、避免了传统相似度比较方法中侧重利用相关性而非相似性的弱点;
4、使得那些虽然缺少共同评分项目,但有整体共同偏好的用户变得可比较;
5、更加适合用户评分数据稀疏的现实情况。
四、推荐实现过程
1、构建用户-电影评分矩阵,如下图:
2、定义云实体类,如下图:
3、定义用户的电影评分频度向量,如下图:
4、实例化云,如下图:
5、计算用户之间的相似度,如下图:
6、得到最近邻居,如下图:
7、得到推荐结果,如下图: