相似度计算 1 相似度的计算简介 关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大
在推荐的场景中,在用户-物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品 之间的相似度
下面我们详细介绍几种常用的相似度计算方法: 1
1 皮尔逊相关系数(Pearson Correlation Coefficient) 皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在 [-1,+1] 之间
sx, sy是 x 和 y 的样品标准偏差
类名:PearsonCorrelationSimilarity 原理:用来反映两个变量线性相关程度的统计量 范围:[-1,1],绝对值越大,说明相关性越强,负相关对于推荐的意义小
说明:1、 不考虑重叠的数量;2、 如果只有一项重叠,无法计算相似性(计算过程被除数有n-1);3、 如果重叠的值都相等,也无法计算相似性(标准差为0,做除数)
该相似度并不是最好的选择,也不是最坏的选择,只是因为其容易理解,在早期研究中经常被提起
使用Pearson 线性相关系数必须假设数据是成对地从正态分 布 中取得 的,并且数据至 少 在逻 辑 范畴 内 必须是等间距的数据
Mahout 中,为皮尔森 相关计算提供 了 一个扩展 ,通 过增 加 一个枚 举 类型 (Weighting)的参 数来使得 重叠数也成为计算相似度的影 响 因子
2 欧几里德距离(Euclidean Distance) 最初用于计算欧几里德空间中两个点的距离,假设 x,y 是 n 维空间的两个点,它们之间的欧几里德距离是: 可以看出,当 n=2 时,欧几里德距离就是平面上两个点的距离
当用欧几里德距离表示相似