相似度计算(4)——Jaccard系数和简单匹配系数

Jaccard系数和简单匹配系数

一、Jaccard系数

  Jaccard系数(Jaccard index),又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性。
  Jaccard 距离:用于描述集合之间的不相似度。

  Jaccard系数:给定两个集合A和B,Jaccard系数定义为A与B交集的大小与A与B并集的大小的比值,定义如下:
在这里插入图片描述
  J(A,B)∈[0,1]。Jaccard系数值越大,样本相似度越高。当集合A,B都为空时,J(A,B)定义为1。
  Jaccard 距离:公式定义如下:
在这里插入图片描述
  Jaccard 距离越大,样本相似度越低。其中对称差(symmetric difference)为:
在这里插入图片描述

二、简单匹配系数

  简单匹配系数(simple matching coefficient,SMC)的定义如下:设x和y是两个对象,都有n个二元属性组成。这两个对象(二元向量)进行比较,可以生成4个量:

  1. M00 = x取0且y取0的属性个数;
  2. M10 = x取1且y取0的属性个数;
  3. M01 = x取0且y取1的属性个数;
  4. M11 = x取1且y取1的属性个数.

  计算公式

  SMC = 匹配数/属性数 = (M11+M00)/(M11+M00+M01+M10)
  J = M11匹配的数量/两个属性值都不为0的数量 = (M11)/(M11+M01+M10)

注:使用jaccard系数和简单匹配系数的缺点是只适用于二元数据的集合。

三、举例:

存在向量p=(1,0,0,0,1)和向量q=(1,0,0,1,0),计算SMC和J。
  解:由两个向量可知:M00=2,M11=1,M01=1,M10=1
  SMC=(M11+M00)/(M11+M00+M01+M10)=3/5
  J=(M11)/(M11+M01+M10)=1/3

你可能感兴趣的:(推荐算法,推荐算法,算法,大数据)