推荐系统-电影推荐系统

本文的代码-源于《推荐系统开发实战》

数据源:train.json, 含有用户看过的所有的电影,以及他对电影的评分

使用算法:

皮尔逊相关系数

公式:

推荐系统-电影推荐系统_第1张图片

皮尔逊相关系数的取值范围是[-1,1],1表示完全正相关,-1表示完全负相关

那么,为什么要使用pearson系数呢,它和欧式距离和cosin相似的有什么区别。

pearson通过一系列的数学推导之后被证明和经过标准化后的欧式距离和cosin相识度的是等价的。

那么使用pearson系数的话,就可以省略掉对数据进行标准化操作的这个步骤。为什么需要标准化操作,这时因为不同的属性如果数值差距很大的话,相关系数的大小往往起决于数量级大的属性,为了消除这种影响,必须做这样的操作。

cosin相识度公式

推荐系统-电影推荐系统_第2张图片

项目代码如下:

链接:https://pan.baidu.com/s/1-3J5XJ2XJ9liUc7ED9S9iw 
提取码:ytdx

实现要点:

1. pearson公式的实现

2. 计算相识度只考虑他们都看过的电影,只有一方看过的电影不纳入公式的计算中

3. 推荐算法的实现逻辑。比如说现在有个场景:给用户A推荐电影。需要做下面的步骤:找到和用户A相识度最高的n个用户,

统计和这k个用户看过,但是用户A没有看过的电影集合C。预测A对集合C中电影的评分,预测的方式可以是评分*相识度的平均值。选取预测评分最高的m个电影推荐给用户。

算法测试:

代码中的测试集,是随机出来的。用预测出来的结果集合和测试中的结果集进行命中率对比。

 

你可能感兴趣的:(推荐算法,数据挖掘)