码迷,mamicode.com
首页 > 其他好文 > 详细

【推荐系统】协同过滤--高度稀疏数据下的数据清理(皮尔逊相关系数)

时间:2014-08-21 19:28:24      阅读:796      评论:0      收藏:0      [点我收藏+]

标签:推荐算法   machine learning   

bubuko.com,布布扣

向量之间的相似度

度量向量之间的相似度方法很多了,你可以用距离(各种距离)的倒数,向量夹角,Pearson相关系数等。

皮尔森相关系数计算公式如下:

bubuko.com,布布扣

分子是协方差,分子是两个变量标准差的乘积。显然要求X和Y的标准差都不能为0。

因为bubuko.com,布布扣,所以皮尔森相关系数计算公式还可以写成:

bubuko.com,布布扣

当两个变量的线性关系增强时,相关系数趋于1或-1。

用户评分预测

用户评分预测的基本原理是:

step1.如果用户i对项目j没有评过分,就找到与用户i最相似的K个邻居(使用向量相似度度量方法)

step2.然后用这K个邻居对项目j的评分的加权平均来预测用户i对项目j的评分。

  iterm1 ………… itemn
user1 R11   R1n
……   Rij  
userm Rm1   Rmn

用户评分数据矩阵

step1.

用户评分矩阵是个高度稀疏的矩阵,即用户对很多项目都没有评分。在高度稀疏的情况下用传统的向量相似度度量方法来度量两个用户的相似度就会很不准确。一种简单的处理办法是对未评分的项都令其等于该用户的平均评分值。

度量用户i和用户j相似度更好的方法是:

1.用户i参与评分的项目集合为Ii,用户j参与评分的项目集合为Ij,找到它们的并集bubuko.com,布布扣

2.在集合bubuko.com,布布扣中用户i未评分的项目是bubuko.com,布布扣,重新估计用户i对bubuko.com,布布扣中每个项目的评分bubuko.com,布布扣

  2.1.取出评分矩阵的两列,计算这两列的相似度就是这两个项目的相似度。bubuko.com,布布扣。找到与bubuko.com,布布扣最相似的V个项目构成集合bubuko.com,布布扣

  2.2.

bubuko.com,布布扣

3.这样用户i和j对bubuko.com,布布扣的评分就都是非0值了,在此情况下计算他们的相似度。

step2.

bubuko.com,布布扣

bubuko.com,布布扣表示用户u对所有评分过的项目的评分平均值。



引用:

http://zh.wikipedia.org/wiki/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0

http://www.cnblogs.com/zhangchaoyang/articles/2664366.html

【推荐系统】协同过滤--高度稀疏数据下的数据清理(皮尔逊相关系数),布布扣,bubuko.com

【推荐系统】协同过滤--高度稀疏数据下的数据清理(皮尔逊相关系数)

标签:推荐算法   machine learning   

原文地址:http://blog.csdn.net/wbj01100/article/details/38733985

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