在数据挖掘中,无论是对数据进行分类、聚类还是异常检测、关联性分析,都建立在数据之间相似性或相异性的度量基础上。通常使用距离作为数据之间相似性或相异性的度量方法,常用的度量方法有欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离、马氏距离、Jaccard系数、相关系数、信息熵。

欧式距离

n维空间中两个样本点x和y之间的欧几里得距离定义如下:

d(x,y)=Σnk=1(xk−yk)2−−−−−−−−−−−−√


标准化欧式距离公式如下:


d(x,y)=Σnk=1(xk−yksk)2−−−−−−−−−−−−√


式中,

sk为数据每一维的方差,标准化欧式距离考虑了数据各维分量的量纲和分布不一样,相当于对每维数据做了标准化处理。欧式距离适用于度量数据属性无关、值域或分布相同的数据对象。

曼哈顿距离

  曼哈顿距离也称为街区距离,计算公式如下:


d(x,y)=Σnk=1|xk−yk|

切比雪夫距离



d(x,y)=limn→∞(Σnk=1(|xk−yk|)r)1r=maxk(|xk−yk|)


上面两个公式是等价的。

闵可夫斯基距离



d(x,y)=(Σnk=1(|xk−yk|)r)1r


式中,r是一个可变参数,根据参数r取值的不同,闵可夫斯基距离可以表示一类距离


  r = 1时,为曼哈顿距离


  r = 2时,为欧式距离


  r →∞时,为切比雪夫距离


闵可夫斯基距离包括欧式距离、曼哈顿距离、切比雪夫距离都假设数据各维属性的量纲和分布(期望、方差)相同,因此适用于度量独立同分布的数据对象。

汉明距离

  两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数,也就是将一个字符串变换为另一个字符串所需要替换的最小字符个数,例如


HammingDistance(1001001,0101101)=3


汉明距离常用于信息编码中。

余弦距离

  余弦相似度公式定义如下:


cos(x,y)=xy|x||y|=Σnk=1xkykΣnk=1x2k−−−−−−√Σnk=1y2k−−−−−−√


余弦相似度实际上是向量

x和y夹角的余弦度量,可用来衡量两个向量方向的差异。如果余弦相似度为 1,则x和 y之间夹角为0°,两向量除模外可认为是相同的;如果预先相似度为 0,则x和 y之间夹角为90°,则认为两向量完全不同。在计算余弦距离时,将向量均规范化成具有长度 1,因此不用考虑两个数据对象的量值。

余弦相似度常用来度量文本之间的相似性。文档可以用向量表示,向量的每个属性代表一个特定的词或术语在文档中出现的频率,尽管文档具有大量的属性,但每个文档向量都是稀疏的,具有相对较少的非零属性值。

马氏距离

  马氏距离的计算公式如下:

mahalanobis(x,y)=(x−y)Σ−1(x−y)T


式中,

Σ−1是数据协方差矩阵的逆。


前面的距离度量方法大都假设样本独立同分布、数据属性之间不相关。马氏距离考虑了数据属性之间的相关性,排除了属性间相关性的干扰,而且与量纲无关。若协方差矩阵是对角阵,则马氏距离变成了标准欧式距离;若协方差矩阵是单位矩阵,各个样本向量之间独立同分布,则变成欧式距离。

Jaccard系数

  Jaccard系数定义为两个集合A和B的交集元素在其并集中所占的比例,即


J(A,B)=A∩BA∪B


对于两个数据对象

x和y,均由 n个二元属性组成,则

J=f11f01+f10+f11


式中,

f11为 x取1且 y取1的属性个数, f01为 x取0且 y取1的属性个数, f10为 x取1且 y取0的属性个数。


Jaccard系数适用于处理仅包含非对称的二元属性的对象。


广义Jaccard系数定义如下:



EJ(x,y)=xy‖x‖2+‖y‖2−xy


广义Jaccard系数又称为Tanimoto系数,可用于处理文档数据,并在二元属性情况下归约为Jaccard系数。

相关系数

  两个数据对象之间的相关性是对象属性之间线性关系的度量,计算公式如下


ρxy=sxysxsy



sxy=1n−1Σnk=1(xk−x¯)(yk−y¯)



sx=1n−1Σnk=1(xk−x¯)2−−−−−−−−−−−−−−−−√



sy=1n−1Σnk=1(yk−y¯)2−−−−−−−−−−−−−−−−√



x¯=1nΣnk=1xk,y¯=1nΣnk=1yk


相关系数是衡量数据对象相关程度的一种方法,取值范围为

[−1,1]。相关系数的绝对值越大,则表明 x和y相关度越高。当 x和y线性相关时,相关系数取值为 1(正线性相关)或−1(负线性相关);线性无关时取值为 0。在线性回归中,使用直线拟合样本点,可利用相关系数度量其线性性。

信息熵

X的信息熵公式定义如下:

Entropy(X)=Σni=1−pilog2(pi)


式中,

n为样本集的分类数,pi为第 i类元素出现的概率。当S中 n个分类出现的概率一样大时,信息熵取最大值log2(n)。当 X只有一个分类时,信息熵取最小值0。信息熵用于度量不确定性,在决策树分类中,信息熵可用于计算子树划分前后的信息增益作为选择最佳划分的度量。