数据挖掘-推荐算法入门

寻找相似用户

 

1.曼哈顿距离:计算速度快,对于Facebook这样需要计算百万用户之间的相似度时就非常有利

最简单的距离计算方式是曼哈顿距离。在二维模型中,每个人都可以用(x, y)的点来表示,这里我用下标来表示不同的人,(x1, y1)表示艾米,(x2, y2)表示那位神秘的X先生,那么他们之间的曼哈顿距离就是:

我们就可以把结果最小(距离最近)的结果最推荐给X先生。

2.欧几里得距离:

 

3.闵可夫斯基距离:

我们可以将曼哈顿距离和欧几里得距离归纳成一个公式,这个公式称为闵可夫斯基距离:

其中:

  • r = 1 该公式即曼哈顿距离
  • r = 2 该公式即欧几里得距离
  • r = ∞ 极大距离

r值越大,单个维度的差值大小会对整体距离有更大的影响。

 

4.皮尔逊相关系数

让我们仔细看看用户对乐队的评分,可以发现每个用户的打分标准非常不同:

  • Bill没有打出极端的分数,都在2至4分之间;
  • Jordyn似乎喜欢所有的乐队,打分都在4至5之间;
  • Hailey是一个有趣的人,他的分数不是1就是4。

那么,如何比较这些用户呢?比如Hailey的4分相当于Jordan的4分还是5分呢?我觉得更接近5分。这样一来就会影响到推荐系统的准确性了。解决方法之一是使用皮尔逊相关系数。

皮尔逊相关系数的计算公式是:

 

能够计算皮尔逊相关系数的近似值:

 

5.余弦相似度

当用户数据是稀疏的时,可以用来计算两者的相似度。余弦相似度的计算中会略过这些非零值。它的计算公式是:

余弦相似度的范围从1到-1,1表示完全匹配,-1表示完全相悖。所以0.935表示匹配度很高。

 

6.K最邻近算法

假设给A推荐物品b,找出K个最相似的用户,然后使用皮尔逊相关系数得到的结果,当你决定是否需要给他A推荐b时,可以计算K个最相似用户对b的评价,对其做皮尔逊相关系数加权求和。

posted @ 2017-03-29 23:24  李雷雷alexkn  阅读(1450)  评论(0编辑  收藏  举报