原文站点:https://senitco.github.io/2017/05/24/measurement-method/
在数据挖掘中,无论是对数据进行分类、聚类还是异常检测、关联性分析,都建立在数据之间相似性或相异性的度量基础上。通常使用距离作为数据之间相似性或相异性的度量方法,常用的度量方法有欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离、马氏距离、Jaccard系数、相关系数、信息熵。
欧式距离
n
维空间中两个样本点
标准化欧式距离公式如下:
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 和
余弦相似度常用来度量文本之间的相似性。文档可以用向量表示,向量的每个属性代表一个特定的词或术语在文档中出现的频率,尽管文档具有大量的属性,但每个文档向量都是稀疏的,具有相对较少的非零属性值。
马氏距离
马氏距离的计算公式如下:
式中, Σ−1 是数据协方差矩阵的逆。
前面的距离度量方法大都假设样本独立同分布、数据属性之间不相关。马氏距离考虑了数据属性之间的相关性,排除了属性间相关性的干扰,而且与量纲无关。若协方差矩阵是对角阵,则马氏距离变成了标准欧式距离;若协方差矩阵是单位矩阵,各个样本向量之间独立同分布,则变成欧式距离。
Jaccard系数
Jaccard系数定义为两个集合A和B的交集元素在其并集中所占的比例,即
J(A,B)=A∩BA∪B
对于两个数据对象 x 和
式中, f11 为 x 取
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 和
信息熵
信息熵描述的是整个系统内部样本之间的一个距离,是衡量分布的混乱程度或分散程度的一种度量。样本分布越分散(或者说分布越平均),信息熵越大;分布越有序(或者说分布越集中),信息熵就越小。给定样本集
Entropy(X)=Σni=1−pilog2(pi)
式中, n 为样本集的分类数,