向量的相似度计算常用方法相似度的计算简介关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大
在推荐的场景中,在用户-物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度
下面我们详细介绍几种常用的相似度计算方法
每人选择一个
第9题为选做
编写程序实现(这是第一个小练习,希望大家自己动手,java实现)
计算两个向量的相似性:向量1(0
2543,0
3465,0
6598,0
5402,0
002)向量2(0
4398,0
4302,0
05402)1、皮尔逊相关系数(PearsonCorrelationCoefficient)皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在[-1,+1]之间
sx,sy是x和y的样品标准偏差
类名:PearsonCorrelationSimilarity原理:用来反映两个变量线性相关程度的统计量范围:[-1,1],绝对值越大,说明相关性越强,负相关对于推荐的意义小
说明:1、不考虑重叠的数量;2、如果只有一项重叠,无法计算相似性(计算过程被除数有n-1);3、如果重叠的值都相等,也无法计算相似性(标准差为0,做除数)
该相似度并不是最好的选择,也不是最坏的选择,只是因为其容易理解,在早期研究中经常被提起
使用Pearson线性相关系数必须假设数据是成对地从正态分布中取得的,并且数据至少在逻辑范畴内必须是等间距的数据
Mahout中,为皮尔森相关计算提供了一个扩展,通过增加一个枚举类型(Weighting)的参数来使得重叠数也成为计算相