概述:
由卡方检验在变量相关度的应用联想到不同的相似度衡量方法,故按照其适用变量、各个方法之间的关联及应用领域进行总结。主要包括SMC、Jaccard、pearson、spearman、Euclidean distance、cos similarity、kendall几种方法
1.SMC(simple matching coefficient)或Jaccard Coefficients:
适用二元变量/名义变量(词汇/元素相似度)
SMC:1和0(特征相同和不同)均考虑;Jaccard Coefficients:只有变量出现1(变量的特征相同)才予以考虑,SMC则认为0,1均为特征,类似于两种花色,一种设置为0,另一种设置为1,故0,1对相似度的判断均有影响
Jaccard Coefficients主要用于计算符号度量或布尔值度量的个体间的相似度,个体的特征属性由符号度量或者布尔值标识无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只判断个体间共同具有的特征是否一致这个问题。
与Jaccard 相似系数相关的指标叫做Jaccard 距离,用于描述集合之间的不相似度。它是Jaccard相似系数的补集,被定义为1减去Jaccard相似系数。Jaccard 距离越大,样本相似度越低。
应用举例:
1)超市中的产品购买记录的相似性---挖掘相似用户(两种度量均可,因为不购买某种产品也能反应消费习惯)
2)不同手机有品牌/颜色/等多项特征,1代表相同,0代表不同(不同可能有很多类,所以0与相似度无关,这种情况适用Jaccard Coefficients)
3)词汇/集合元素相似度,尤其是数量不同的时候,使用Jaccard
在每条产品购买记录中,购买的产品为1,未被购买的产品为0
代码:
2.Pearson相关系数
线性相关系数,对数据分布要求较高
公式:
范围:-1到1
缺点:
1)与样本数量有关,如果n过小,很有可能出现接近1,n过大可能小于1;且显著性检验时采用的t检验要求数据来自正态分布,样本过小可能导致要求不满足
2)从含义看,如果出现X=(1,1,1)向量,其标准差为0,分母为0所以无法计算pearson相关系数
应用:
1)求两样品的不同特征之间的相关系数,从而用于降维
2)根据相关度进行聚类
与cos联系:
实际上是做了标准化的cos,皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进. Cos用过取均值进行填充,而相关系数可以通过0填充,因为每个维度上的值都要减掉均值,整体会有平均化处理,均值为0,所以可以把0赋值给null
注:cos、欧式距离、pearson的公式经过化简后,含义相似,具体可参考各位答主的解读
如何理解皮尔逊相关系数(Pearson Correlation Coefficient)?www.zhihu.com3.欧式距离(相似度的反向表达)
公式:
缺点:
没有进行标准化,只能衡量距离(文本中可以理解为词频),不能衡量分布的相似性(比如两个词均成对出现,只是一个文件中出现5次,另一个文件中出现2次)
4.Cos
公式:
范围:-1到1
缺点:向量某个维度有缺失,导致无法计算相似度(处理方法,v=(1,2,null),取平均值null=1.5
应用:求词向量/文本文件相似度,用夹角表示
5.spearman秩相关系数
公式:
特点及应用:
向量的各维表示的是序数,而不是具体值,比如团队成员有数学、编程、文学、运动等多方面的评估的排名,可以通过序数比较来得到成员间的综合能力相似度
与pearson对比:
解决了标准差为0的问题,同时对数据错误g和极端值反应不明显
代码(R):
X=c(1,2,3),Y=c(2,2,2)
cor(X,Y,method="spearman")
6.kendall秩相关系数
公式:
kendall相关系数又称作和谐系数,也是一种等级相关系数,其计算方法如下:
对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果Xi<Yi并且Xj<Yj,或者Xi>Yi并且Xj>Yj,则称这两对观察值是和谐的,否则就是不和谐的.
和谐: x1>y1 and x2>y2 (or x1<y1 and x2<y2)
不和谐: 非和谐都是不和谐
原文链接:【统计学】三大相关系数之肯德尔相关系数(kendall correlation coefficient)
特点及应用: Kendall相关系数是一个用来测量两个随机变量相关性的统计值。肯德尔相关系数的取值范围在-1到1之间,当τ为1时,表示两个随机变量拥有一致的等级相关性;当τ为-1时,表示两个随机变量拥有完全相反的等级相关性;当τ为0时,表示两个随机变量是相互独立的。
用于分类变量,比如质量等级的评价,分为高中低,可判断两个评价的相关度
代码:X=c(1,2,3),Y=c(2,2,2),cor(X,Y,method="spearman")