欧几里德距离和皮尔逊相关系数计算方法

欧几里德距离是推荐算法中比较简单的一种,他计算两个用户之间的相似程度
其计算方法为,以豆瓣电影为例
假设用户A对电影 f1.。。。fn的评价分数分别为 r1.。。。rn
用户B对电影 f1.。。。fn的评价分数分别为s1.。。。。sn
暂且假设A和B都对这些电影评价过
那么用户A和B的欧几里德距离计算方法为
先计算A和B的对所有同一部电影的评分的差值的平方和

sum = pow(r1-s1,2)+pow(r2-s2,2)+....+pow(rn-sn,2);
然后对sim取平方根值
sim = sqrt(sum);
sim的值越小表示两个人的相似度越大

欧几里德距离计算起来相对简单,相对于皮尔逊相关系数来说,如果数据很杂乱不是很规范
那么推荐的结果不一定准确,比如A始终给出的分数比B要高,那么得出的结论将是A和B不相近
皮尔逊相关系数则能给出比较好的结果,但是公式也比较复杂

A和B都评价过的电影数为n
分别计算A和B对每一部电影的评分的和
sumA = r1+r2+...+rn;
sumB = s1+s2+...+sn;

分别计算A和B对每部电影评分的平方的和
powA = pow(r1,2)+pow(r2,2)+...+pow(rn, 2);
powB = pow(s1,2)+pow(s2,2)+...+pow(sn, 2);

计算A和B对每一部电影的评分的乘积的和(A[f1]*B[f1])
sumAB = r1*s1+r2*s2+...+rn*sn;

下面就是计算皮尔逊值的公式了

num = sumAB - (sumA*sumB/n);
len = sqrt(powA - pow(sumA,2)/n)*(powB - pow(sumB,2)/n);

value = num/len;

value越大,A和B就越相近

时间: 2024-10-09 19:58:01

欧几里德距离和皮尔逊相关系数计算方法的相关文章

皮尔逊相关系数

皮尔逊相关系数是比欧几里德距离更加复杂的可以判断人们兴趣的相似度的一种方法.该相关系数是判断两组数据与某一直线拟合程序的一种试题.它在数据不是很规范的时候,会倾向于给出更好的结果. 如图,Mick Lasalle为<<Superman>>评了3分,而Gene Seyour则评了5分,所以该影片被定位中图中的(3,5)处.在图中还可以看到一条直线.其绘制原则是尽可能地靠近图上的所有坐标点,被称为最佳拟合线.如果两位评论者对所有影片的评分情况都相同,那么这条直线将成为对角线,并且会与图

相似性度量(距离及相似系数)

在分类聚类算法中,时常需要计算两个变量(通常是向量的形式)的距离,即相似性度量.其中,距离度量的性质:非负性,自反性,对称性和三角不等式. 本文的目的就是对常用的相似性度量作一个总结. 本文目录: 1.欧氏距离 2.曼哈顿距离 3. 切比雪夫距离 4. 闵可夫斯基距离 5.标准化欧氏距离 6.马氏距离 7.余弦相似度 8.汉明距离 9.杰卡德距离& 杰卡德相似系数 10.皮尔逊相关系数 11.相关系数& 相关距离 12.信息熵 1. 欧氏距离(Euclidean Distance) 欧氏距

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

向量之间的相似度 度量向量之间的相似度方法很多了,你可以用距离(各种距离)的倒数,向量夹角,Pearson相关系数等. 皮尔森相关系数计算公式如下: 分子是协方差,分子是两个变量标准差的乘积.显然要求X和Y的标准差都不能为0. 因为,所以皮尔森相关系数计算公式还可以写成: 当两个变量的线性关系增强时,相关系数趋于1或-1. 用户评分预测 用户评分预测的基本原理是: step1.如果用户i对项目j没有评过分,就找到与用户i最相似的K个邻居(使用向量相似度度量方法) step2.然后用这K个邻居对项

机器学习笔记——皮尔逊相关系数

在学到相关性度量的时候,有一个系数用来度量相似性(距离),这个系数叫做皮尔逊系数,事实上在统计学的时候就已经学过了,仅仅是当时不知道还能用到机器学习中来,这更加让我认为机器学习离不开统计学了. 皮尔逊相关系数--Pearson correlation coefficient,用于度量两个变量之间的相关性,其值介于-1与1之间,值越大则说明相关性越强. 两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商: 因为μX = E(X), σX2 = E[(X ? E(X))2] = E(

皮尔逊相关系数和余弦相似性的关系

有两篇回答,我觉得都是正确的,从不同的方向来看的. 作者:陈小龙链接:https://www.zhihu.com/question/19734616/answer/174098489来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说结论: 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进. 楼主如果高中正常毕业, 参加过高考, 那么肯定会这么

皮尔逊相关系数理解

皮尔逊相关系数理解有两个角度 其一, 按照高中数学水平来理解, 它很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数 Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理) 标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方. 所以, 根据这个最朴素的理解,我们可以将公式依次精简为: 其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦. 皮尔逊相关的约束条件

《集体智慧编程》学习记录:欧几里得距离&amp;皮尔逊相关系数

1 critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5, 'The Night Listener': 3.0}, 2 'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5, 'J

皮尔逊相关系数(Pearson Collelation coefficient)与余弦相似性的关系

皮尔逊相关系数 维基百科定义:两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商 余弦相似性 皮尔逊相关系数与余弦相似性的关系 皮尔逊相关系数就是减去平均值(中心化)后做余弦相似性

皮尔逊相关系数的java实现

相关系数的值介于–1与+1之间,即–1≤r≤+1.其性质如下:当r>0时,表示两变量正相关,r<0时,两变量为负相关.当|r|=1时,表示两变量为完全线性相关,即为函数关系.当r=0时,表示两变量间无线性相关关系.当0<|r|<1时,表示两变量存在一定程度的线性相关.?且|r|越接近1,两变量间线性关系越密切:?|r|越接近于0,表示两变量的线性相关越弱.一般可按三级划分:|r|<0.4为低度线性相关:?0.4≤|r|<0.7为显著性相关:0.7≤|r|<1为高度