聚类任务
在无监督学习(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。形式化的表示为:样本集 D={x1,x2...,xm} D = { x 1 , x 2 . . . , x m } 包含 m m 个无标记样本,每个样本 xi=(xi1,xi2,...,xin) x i = ( x i 1 , x i 2 , . . . , x i n ) 是一个 n n 维的特征向量,则聚类算法就是将样本集 D D 划分为 k k 个不相交的簇 {Cl|l=1,2,...,k} { C l | l = 1 , 2 , . . . , k } ,其中 Cl′⋂Cl=∅ C l ′ ⋂ C l = ∅ 且 l′≠l l ′ ≠ l ,且 D=⋃l=1kCl D = ⋃ k l = 1 C l .相应的 λj∈{1,2,...,k} λ j ∈ { 1 , 2 , . . . , k } 表示 xj x j 的簇标记(cluster label),即就是 xj∈Cλj x j ∈ C λ j 。于是,聚类觉过可用包含 m m 个元素的簇标记向量 λ=(λ1;λ2;...;λm) λ = ( λ 1 ; λ 2 ; . . . ; λ m ) 表示。
性能度量
聚类性能度量大致分为两类:
1.将聚类模型结果与某个参考模型进行比较,这种称为外部指标
2.直接参考聚类结果而不利用任何参考模型,这种称为内部指标外部指标
样本集 D={x1,x2...,xm} D = { x 1 , x 2 . . . , x m }
实验模型 C={C1,C2,...,Ck} C = { C 1 , C 2 , . . . , C k }
参考模型 C∗={C∗1,C∗2,...,C∗s,} C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ , }
λ λ 表示 C C 的簇标记向量
λ∗ λ ∗ 表示 C∗ C ∗ 的标记向量
做一下定义:
a=|SS|={(xi,xj)|λi=λj,λ∗i=λ∗j,i<j} a = | S S | = { ( x i , x j ) | λ i = λ j , λ i ∗ = λ j ∗ , i < j }
b=|SD|={(xi,xj)|λi=λj,λ∗i≠λ∗j,i<j} b = | S D | = { ( x i , x j ) | λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j }
c=|DS|={(xi,xj)|λi≠λj,λ∗i=λ∗j,i<j} c = | D S | = { ( x i , x j ) | λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j }
d=|DD|={(xi,xj)|λi≠λj,λ∗i≠λ∗j,i<j} d = | D D | = { ( x i , x j ) | λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j }
jaccard系数(Coefficient,简称JC)
JC=aa+b+c J C = a a + b + c
FM指数(Fowlkes and Mallows Index,简称FMI)
FMI=aa+b∗aa+c‾‾‾‾‾‾‾‾‾√ F M I = a a + b ∗ a a + c
Rand指数(Rand Index,简称RI)
RI=2(a+d)m(m−1) R I = 2 ( a + d ) m ( m − 1 )
上述性能衡量的结果值均在 [0,1] [ 0 , 1 ] 区间,值越大越好内部指标
DB指数
Dunn指数
见博客:https://blog.csdn.net/u012102306/article/details/52423074
距离计算
连续值
标量也就是无方向意义的数字,也叫标度变量。现在先考虑元素的所有特征属性都是标量的情况。例如,计算X={2,1,102}和Y={1,3,2}的相异度。一种很自然的想法是用两者的欧几里得距离来作为相异度,欧几里得距离的定义如下:
d(X,Y)=(x1−y1)2+(x2−y2)2+...+(xn−yn)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√ d ( X , Y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x n − y n ) 2 其意义就是两个元素在欧氏空间中的集合距离,因为其直观易懂且可解释性强,被广泛用于标识两个标量元素的相异度。将上面两个示例数据代入公式,可得两者的欧氏距离为:
d(X,Y)=(2−1)2+(1−3)2+(102−2)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√=100.025 d ( X , Y ) = ( 2 − 1 ) 2 + ( 1 − 3 ) 2 + ( 102 − 2 ) 2 = 100.025 除欧氏距离外,常用作度量标量相异度的还有曼哈顿距离和闵可夫斯基距离,两者定义如下:曼哈顿距离:
d(X,Y)=|x1−y1|+|x2−y2|+...+|xn−yn| d ( X , Y ) = | x 1 − y 1 | + | x 2 − y 2 | + . . . + | x n − y n |闵可夫斯基距离:
d(X,Y)=|x1−y1|p+|x2−y2|p+...+|xn−yn|p‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√p d ( X , Y ) = | x 1 − y 1 | p + | x 2 − y 2 | p + . . . + | x n − y n | p p欧氏距离和曼哈顿距离可以看做是闵可夫斯基距离在p=2和p=1下的特例。另外这三种距离都可以加权,这个很容易理解,不再赘述。
下面要说一下标量的规格化问题。上面这样计算相异度的方式有一点问题,就是取值范围大的属性对距离的影响高于取值范围小的属性。例如上述例子中第三个属性的取值跨度远大于前两个,这样不利于真实反映真实的相异度,为了解决这个问题,一般要对属性值进行规格化。所谓规格化就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常将各个属性均映射到[0,1]区间,映射公式为:
a′i=ai−min(ai)max(ai)−min(ai) a i ′ = a i − m i n ( a i ) m a x ( a i ) − m i n ( a i )其中max(ai)和min(ai)表示所有元素项中第i个属性的最大值和最小值。例如,将示例中的元素规格化到[0,1]区间后,就变成了X’={1,0,1},Y’={0,1,0},重新计算欧氏距离约为1.732。
离散值
在进行距离度量时,易知连续属性和存在序关系的离散属性都可以直接参与计算,因为它们都可以反映一种程度,我们称其为“有序属性”;而对于不存在序关系的离散属性,我们称其为:“无序属性”,显然无序属性再使用闵可夫斯基距离就行不通了。对于无序属性,我们一般采用VDM进行距离的计算。
VDM见这个博客https://blog.csdn.net/u011826404/article/details/70991604