聚类算法概述
聚类分析是根据样本数据之间的某种相似关系将数据集中的样本划分为多个通常不相交的子集的过程,每一个子集称为一个簇(cluster),每个簇对应一个潜在的类别。
按照数据之间的相似性,对数据集进行分组或分簇,每个簇中任意两个数据样本之间具有较高的相似度,而不同簇的数据样本之间具有较低的相似度。
聚类分析的目标:
- 簇内差距最小化,即一个簇内的数据尽量相似(high intra-class similarity)
- 簇间差距最大化,即不同簇的数据尽量不相似(low inter-class similarity)
相似度度量
- 连续性属性的相似度
- 二值离散型属性的相似度
- 多值离散型属性的相似度
- 混合类型属性的相似度
1、连续性属性的相似度
距离度量:距离越大,相似性越小。
-
常用距离度量方法
闵可夫斯基距离(Minkowski distance):
d i s t m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p dist_{mk}(x_i,x_j)=(\sum^n\limits_{u=1}\mid x_{iu}-x_{ju} \mid^p)^\frac{1}{p} distmk(xi,xj)=(u=1∑n∣xiu−xju∣p)p1
p = 1 p=1 p=1:曼哈顿距离(Manhattan distance):
d i s t m a n ( x i , x j ) = ∥ x i − x j ∥ 1 = ∑ u = 1 n ∣ x i u − x j u ∣ dist_{man}(x_i,x_j)=\|x_i-x_j\|_1=\sum^n\limits_{u=1}\mid x_{iu}-x_{ju} \mid distman(xi,xj)=∥xi−xj∥1=u=1∑n∣xiu−xju∣
p = 2 p=2 p=2:欧式距离(Euclidean distance):
d i s t e d ( x i , x j ) = ∥ x i − x j ∥ 2 = ∑ u = 1 n ∣ x i u − x j u ∣ 2 dist_{ed}(x_i,x_j)=\|x_i-x_j\|_2=\sqrt{\sum^n\limits_{u=1}\mid x_{iu}-x_{ju} \mid^2} disted(xi,xj)=∥xi−xj∥2=u=1∑n∣xiu−xju∣2 -
类间距离计算相似性方法
设有两个类 C a C_a Ca和 C a C_a Ca,它们分别有 m m m 和 n n n 个元素,中心分别为 γ a \gamma_a γa 和 γ b \gamma_b γb。设元素 x ∈ C a x \in C_a x∈Ca, y ∈ C b y \in C_b y∈Cb ,这两个元素间的距离通常通过类间距离来刻画,记为 D S ( C a , C b ) D_S(C_a,C_b) DS(Ca,Cb)。
最短距离法:
D S ( C a , C b ) = min { d ( x , y ) ∣ x ∈ C a , y ∈ C b } D_S(C_a,C_b)=\min\{d(x,y)\mid x\in C_a, y\in C_b\} DS(Ca,Cb)=min{d(x,y)∣x∈Ca,y∈Cb}
最长距离法:
D L ( C a , C b ) = max { d ( x , y ) ∣ x ∈ C a , y ∈ C b } D_L(C_a,C_b)=\max\{d(x,y)\mid x\in C_a, y\in C_b\} DL(Ca,Cb)=max{d(x,y)∣x∈Ca,y∈Cb}
中心法:
D C ( C a , C b ) = d ( γ a , γ b ) = d ( x a ˉ , x b ˉ ) D_C(C_a,C_b)=d(\gamma_a,\gamma_b)=d(\bar{x_a},\bar{x_b}) DC(Ca,Cb)=d(γa,γb)=d(xaˉ,xbˉ)
类平均法:
D G ( C a , C b ) = 1 m n ∑ x ∈ C a ∑ y ∈ C b d ( x , y ) D_G(C_a,C_b)=\frac{1}{mn}\sum\limits_{x\in C_a}\sum\limits_{y\in C_b}d(x,y) DG(Ca,Cb)=mn1x∈Ca∑y∈Cb∑d(x,y) 其中 x i ˉ = 1 n i ∑ x ∈ C i x \bar{x_i}=\frac{1}{n_i}\sum\limits_{x\in C_i}x xiˉ=ni1x∈Ci∑x
2、二值离散型属性的相似度
一个二元变量只有两个状态:0或1,0表示变量为空,1表示变量存在。
可以对给定的数据计算相异度矩阵。如果假设所有的二元变量具有相同的权重,得到一个两行两列的可能性。
- 对称的二值离散型属性
对称的二值离散型:属性的两个状态是同等价值的,并有相同的权重,也就是两个取值0或1没有优先权。例如,属性“性别” ,它有两个值“女性”和“男性”
简单匹配系数SMC:Simple matching coefficient
(invariant, if the binary variable is symmetric):
S M C ( x i , x j ) = a 10 + a 01 a 11 + a 10 + a 01 + a 00 SMC(x_i,x_j)=\frac{a_{10}+a_{01}}{a_{11}+a_{10}+a_{01}+a_{00}} SMC(xi,xj)=a11+a10+a01+a00a10+a01
- 不对称的二值离散型属性
不对称二值离散型:属性两个状态的输出不是同样重要。例如:一个疾病检查的肯定和否定结果。根据惯例,将比较重要的输出结果,即出现几率较小的结果编码为1(例如,HIV阳性),而将另一种结果编码为0(例如,HIV阴性)。给定两个不对称的二元变量,两个都取值1的情况被认为比两个都取值0的情况更有意义。因此,这样的二元变量被认为好像只有一个状态。
JACCARD系数:在计算中,负匹配的数目d认为是不重要的,因此被忽略。
J C ( x i , x j ) = a 10 + a 01 a 11 + a 10 + a 01 JC(x_i,x_j)=\frac{a_{10}+a_{01}}{a_{11}+a_{10}+a_{01}} JC(xi,xj)=a11+a10+a01a10+a01
3、多值离散型属性的相似度计算方法
多值离散型属性的相似度
d
(
x
i
,
x
j
)
=
d
−
u
d
d(x_i,x_j)=\frac{d-u}{d}
d(xi,xj)=dd−u
其中,
d
d
d 为数据集中的属性个数,
u
u
u 为样本
x
i
x_i
xi 和
x
j
x_j
xj 取值相同的属性个数。
4、混合类型属性的相似度计算方法
对于包含混合类型属性的数据集的相似度通常有两种计算方法:
- 将属性按照类型分组,每个新的数据集中只包含一种类型的属性;之后对每个数据集进行单独的聚类分析
- 把混合类型的属性放在一起处理,进行一次聚类分析
d
(
x
i
,
x
j
)
=
∑
k
=
1
d
δ
i
j
(
k
)
d
i
j
(
k
)
∑
k
=
1
d
δ
i
j
(
k
)
d(x_i,x_j)=\frac{\sum^d\limits_{k=1}\delta^{(k)}_{ij}d^{(k)}_{ij}}{\sum^d\limits_{k=1}\delta^{(k)}_{ij}}
d(xi,xj)=k=1∑dδij(k)k=1∑dδij(k)dij(k)
δ
i
j
(
k
)
\delta^{(k)}_{ij}
δij(k) 表示第
k
k
k 个属性对样本
x
i
x_i
xi 和
x
j
x_j
xj 之间距离计算的影响:
当
x
i
k
x_{ik}
xik 或
x
j
k
x_{jk}
xjk 不存在时,
δ
i
j
(
k
)
=
0
\delta^{(k)}_{ij}=0
δij(k)=0;
当第
k
k
k 个属性为不对称二值离散属性,且
x
i
k
=
x
j
k
=
0
x_{ik}=x_{jk}=0
xik=xjk=0 时,
δ
i
j
(
k
)
=
0
\delta^{(k)}_{ij}=0
δij(k)=0
此外
δ
i
j
(
k
)
=
1
\delta^{(k)}_{ij}=1
δij(k)=1
第
k
k
k 个属性为连续型时,
d
i
j
(
k
)
=
∣
x
i
k
−
x
j
k
∣
max
∣
x
1
k
,
x
2
k
,
.
.
.
,
x
n
k
∣
−
min
∣
x
1
k
,
x
2
k
,
.
.
.
,
x
n
k
∣
d^{(k)}_{ij}=\frac{\mid x_{ik}-x_{jk}\mid}{\max\mid x_{1k}, x_{2k}, ..., x_{nk} \mid - \min\mid x_{1k}, x_{2k}, ..., x_{nk} \mid}
dij(k)=max∣x1k,x2k,...,xnk∣−min∣x1k,x2k,...,xnk∣∣xik−xjk∣
第
k
k
k 个属性为二值或多值离散型时,
x
i
k
=
x
j
k
x_{ik}=x_{jk}
xik=xjk 则
d
i
j
(
k
)
=
0
d^{(k)}_{ij}=0
dij(k)=0, 否则
d
i
j
(
k
)
=
1
d^{(k)}_{ij}=1
dij(k)=1。
聚类性能度量
外部指标 (external index)
内部指标 (internal index)
。。。