相似度
1、jaccard index又称为jaccard similarity coefficient用于比较有限样本集之间的相似性和差异性
定义:
给定两个集合A,B jaccard 系数定义为A与B交集的大小与并集大小的比值,jaccard值越大说明相似度越高
当A和B都为空时,jaccard(A,B)=1;
与jaccard 系数相关的指标是jaccard距离用于描述不相似度,公式为
jaccard相似度的缺点是值适用于二元数据的集合。
举一个非对称(注意这里强调非对称)二元属性的相似度
已知有序集合A,B,每个集合都含有n个二元的属性,即每个属性都是0或1,
M11表示A和B对应位都是1的属性的数量
M10表示A中为1,B中对应位为0的总数量
M01表示A中为0,B中对应位为1的总数量
M00表示对应位都为0的总数量
M11+M10+M01+M00=n
Jaccard 相似度jaccard距离
这里有人会有疑问,jaccard相似度是指交集和并集的比值,这里J的分子为什么只有M11没有M00,这是因为我们求的是非对称二元属性的相似度,这里只有非0值才受关注,比如考虑普通人的健康状况,属性集合(糖尿病,心脏病,精神病,。。。),糖尿病指标0表示没有糖尿病,1表示糖尿病,心脏病指标0表示没有心脏病,1表示心脏病,比较两个人的患病情况,我们只关注有病的情况。所以分子和分母中没有M00
知乎上几种相似度的比较
2、广义jaccard系数,
x=(x1,x2,...,xn) y=(y1,y2,...,yn)是两个向量,xi,yi>0的实值,x,y的相似性系数定义为,距离定义为
更一般的情况,f和是X上关于u的两个非负的测量函数,则
上面是广义jaccard 相似性的一种定义,另一种是Tanimoto 相似性和距离,这种相似性是两个bitmap相同位和所有位的比值, {\displaystyle \land ,\lor } 是与,或操作,
wiki上说If each sample is modelled instead as a set of attributes, this value is equal to the Jaccard coefficient of the two sets
这句话的意思是jaccard是以属性集合的方式定义的,而Tanimoto是以位图的方式定义的
对于这句话难以理解
Tanimoto相似性的其他定义
如果用位向量(0,1向量)来表示Tanimoto 可以定义为,,其中
有时候二元变量有相同的权重,如“男”“女”,但有时候二元变量优先权不同,或者说权重不同,通常将重要的变量编码为1,,两个不对称的变量,如果编码值都为1更有意义,基于这样的相似度成为非对称相似度。这种相似度的评价最著名的就是jaccard系数。
------------------------------------------------------------------------
其他概念
1、对等差分(symetric difference)
对等差分就是给定两个集合A,B,要么在A集合中,要么在集合B中,但是不在两个集合的交集中的元素组成的集合,用符号表示为或或。
或者。
2、余弦相似度
对于两个向量a,b,向量可以是多维,余弦相似度定义为,注意a,b可以是多维向量
3、其余的还有欧氏距离,马氏距离,闵可夫斯基距离,汉明距离,等等,这里不介绍,需要的时候再查找相关资料