聚类方法有很多,下面叙述最常用的两种聚类方法:层次聚类和k均值聚类。层次聚类又有聚合和分裂两种方法。聚合法开始将每个样本各自分到一个类;之后将距离最近的两类合并,建立一个新的类;之后将已有类别中相聚最远的样本分到两个新的类,重复此操作直到满足停止条件,得到层次化的类别。
14.1 聚类的基本概念
14.1.1 相似度或距离
聚类的对象是观测数据或样本集合。假设有
n
n
n个样本,每个样本有
m
m
m个属性的特征向量组成。样本集合表示为:
X
=
[
x
i
j
]
m
×
n
=
[
x
11
x
12
⋯
x
1
n
x
21
x
22
⋯
x
2
n
⋮
⋮
⋱
⋮
x
m
1
x
m
2
⋯
x
m
n
]
X=[x_{ij}]_{m\times n}=\left[ \begin{matrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{matrix} \right]
X=[xij]m×n=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn⎦⎥⎥⎥⎤元素
x
i
j
x_{ij}
xij表示第
i
i
i个样本第
j
j
j个属性,
i
=
1
,
2
,
⋯
 
,
n
,
j
=
1
,
2
,
⋯
 
,
m
i=1,2,\cdots,n,\ \ j=1,2,\cdots,m
i=1,2,⋯,n, j=1,2,⋯,m.
聚类的核心概念是相似度或距离,有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。下面介绍几种常用的相似度定义:
- 闵可夫斯基距离
在聚类中,可以将样本集合想象成向量空间中的点,可以以空间的距离表示样本之间的相似度。
定义14.1 给定样本集合 X X X, X X X是 m m m维实数向量空间 R m R^m Rm中点的集合,其中 x i , x j ∈ X x_i,x_j \in X xi,xj∈X, x i = { x 1 i , x 2 i , ⋯   , x m i } T x_i=\lbrace x_{1i},x_{2i},\cdots,x_{mi} \rbrace^T xi={x1i,x2i,⋯,xmi}T, x j = { x 1 j , x 2 j , ⋯   , x m j } T x_j=\lbrace x_{1j},x_{2j},\cdots,x_{mj} \rbrace^T xj={x1j,x2j,⋯,xmj}T,样本 x i x_i xi与 x j x_j xj之间的闵可夫斯基距离定义为: d i j = ( ∑ k = 1 m ∣ x k i − x k j ∣ p ) 1 p d_{ij}=(\sum_{k=1}^m|x_{ki}-x_{kj}|^p)^{\frac{1}{p}} dij=(k=1∑m∣xki−xkj∣p)p1这里 p ≥ 1 p\geq1 p≥1。当 p = 2 p=2 p=2时称为欧式距离,即 d i j = ( ∑ k = 1 m ∣ x k i − x k j ∣ 2 ) 1 2 d_{ij}=(\sum_{k=1}^m|x_{ki}-x_{kj}|^2)^{\frac{1}{2}} dij=(k=1∑m∣xki−xkj∣2)21当 p = 1 p=1 p=1时称为曼哈顿距离,即 d i j = ∑ i = 1 m ∣ x k i − x k j ∣ d_{ij}=\sum_{i=1}^m|x_{ki}-x_{kj}| dij=i=1∑m∣xki−xkj∣当 p = ∞ p=\infin p=∞时称为切比雪夫距离,取各个坐标差点最大值,即 d i j = m a x k ∣ x k i − x k j ∣ d_{ij}=max_k|x_{ki}-x_{kj}| dij=maxk∣xki−xkj∣ - 马哈拉诺比斯距离
马哈拉诺比斯距离,简称马氏距离,是另一种常用的相似度。考虑各个分量(特征)之间的相关性并与各个分量的尺度无关。马哈拉诺比斯距离越大相似度越小,距离越小相似度越大。
定义14.2 给定一个样本集合 X X X, X = ( x i j ) m × n X=(x_{ij}){m\times n} X=(xij)m×n,其协方差矩阵记作 S S S。样本 x i x_i xi与样本 x j x_j xj之间的马哈拉诺比斯距离 d i j d_{ij} dij定义为 d i j = [ ( x i − x j ) T S − 1 ( x i − x j ) ] 1 2 d_{ij}=[(x_i-x_j)^TS^{-1}(x_i-x_j)]^{\frac{1}{2}} dij=[(xi−xj)TS−1(xi−xj)]21其中, x i = ( x 1 i , x 2 i , ⋯   , x m i ) T , x j = ( x 1 j , x 2 j , ⋯ , x m j ) T x_i=(x_{1i},x_{2i},\cdots,x_{mi})^T,x_j=(x_{1j},x_{2j},\cdots,x_{mj})^T xi=(x1i,x2i,⋯,xmi)T,xj=(x1j,x2j,⋯,xmj)T当 S S S为单位矩阵时,即样本数据的各个分量互相独立且各个分量的方差为1时,马氏距离就是欧氏距离,可以将马氏距离看作是欧氏距离的推广。 - 相关系数
样本之间的相似度也可以用相关系数来表示。相关系数的绝对值越接近于1,表示样本越相似;越接近0,表示样本越不相似。
定义14.3 样本 x i x_i xi与样本 x j x_j xj之间的相关系数定义为 r i j = ∑ k = 1 m ( x k i − x ‾ i ) ( x k j − x ‾ j ) [ ∑ k = 1 m ( x k i − x ‾ i ) 2 ∑ i = 1 m ( x k j − x ‾ j ) 2 ] 1 2 r_{ij}=\frac{\sum_{k=1}^m(x_{ki}-\overline x_i)(x_{kj}-\overline x_j)}{[\sum_{k=1}^m(x_{ki}-\overline x_i)^2\sum_{i=1}^m(x_{kj}-\overline x_j)^2]^\frac{1}{2}} rij=[∑k=1m(xki−xi)2∑i=1m(xkj−xj)2]21∑k=1m(xki−xi)(xkj−xj)其中, x ‾ i = 1 m ∑ k = 1 m x k i , x ‾ j = 1 m ∑ k = 1 m x k j \overline x_i=\frac{1}{m}\sum_{k=1}^mx_{ki},\overline x_j=\frac{1}{m}\sum_{k=1}^mx_{kj} xi=m1k=1∑mxki,xj=m1k=1∑mxkj - 夹角余弦
样本之间的相似度也可以用夹角余弦来表示,夹角余弦越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
定义14.4 样本 x i x_i xi与样本 x j x_j xj 之间的余弦夹角定义为 s i j = ∑ k = 1 m x k i x k j [ ∑ k = 1 m x k i 2 ∑ k = 1 m x k j 2 ] 1 2 s_{ij}=\frac{\sum_{k=1}^mx_{ki}x_{kj}}{[\sum_{k=1}^mx_{ki}^2\sum_{k=1}^mx_{kj}^2]^{\frac{1}{2}}} sij=[∑k=1mxki2∑k=1mxkj2]21∑k=1mxkixkj
14.1.2 类或簇
通过聚类得到的类或簇,本质是样本的子集。如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为硬聚类方法。否则,如果一个样本可以属于多个类,或类的交集不为空集,那么该方法称为软聚类方法。
用
G
G
G表示类或簇,用
x
i
x_i
xi,
x
j
x_j
xj表示类中的样本,用
n
G
n_G
nG表示
G
G
G中样本的个数,用
d
i
j
d_{ij}
dij表示样本
x
i
x_i
xi与样本
x
j
x_j
xj之间的距离。
定义14.5 设
T
T
T 为给定的正数,若集合
G
G
G中任意两个样本
x
i
x_i
xi,
x
j
x_j
xj,有
d
i
j
≤
T
d_{ij}\leq T
dij≤T则称
G
G
G 为一个类或簇。
定义14.6 设
T
T
T 为给定的正数,若集合
G
G
G的任意样本
x
i
x_i
xi,一定存在
G
G
G中的另一个样本
x
j
x_j
xj,使得
d
i
j
≤
T
d_{ij}\leq T
dij≤T则称
G
G
G 为一个类或簇。
定义14.7 设
T
T
T 为给定的正数,若集合
G
G
G的任意样本
x
i
x_i
xi,
G
G
G中的另一个样本
x
j
x_j
xj满足
1
n
G
−
1
∑
x
j
∈
G
d
i
j
≤
T
\frac{1}{n_G-1}\sum_{x_j\in G}d_{ij}\leq T
nG−11xj∈G∑dij≤T其中
n
G
n_G
nG 为
G
G
G 样本的个数,则称
G
G
G 为一个类或簇。
定义14.8 设
T
T
T 和
V
V
V 为给定的两个正数,如果集合
G
G
G 中的任意两个样本
x
i
x_i
xi,
x
j
x_j
xj的距离
d
i
j
d_{ij}
dij满足
1
n
G
(
n
G
−
1
)
∑
x
i
∈
G
∑
x
j
∈
G
d
i
j
≤
T
\frac{1}{n_G(n_G-1)}\sum_{x_i\in G}\sum_{x_j\in G}d_{ij}\leq T
nG(nG−1)1xi∈G∑xj∈G∑dij≤T
d
i
j
≤
T
d_{ij}\leq T
dij≤T则称
G
G
G 为一个类或簇。
类的特征可以通过不同角度来刻画,常用的特征有下面三种:
(1)类的均值
x
‾
G
\overline x_G
xG,由称为类的中心
x
‾
G
=
1
n
G
∑
i
=
1
n
G
x
i
\overline x_G=\frac{1}{n_G}\sum_{i=1}^{n_G}x_i
xG=nG1i=1∑nGxi式中
n
G
n_G
nG是类
G
G
G的样本个数。
(2)类的直径
D
G
D_G
DG
类的直径
D
G
D_G
DG是类中任意两个样本之间的最大距离,即
D
G
=
m
a
x
x
i
,
x
j
∈
G
d
i
j
D_G=max_{x_i,x_j\in G}d_{ij}
DG=maxxi,xj∈Gdij
(3)类的样本散布矩阵
A
G
A_G
AG与样本协方差矩阵
S
G
S_G
SG
类的散布矩阵
A
G
A_G
AG
A
G
=
∑
i
=
1
n
G
(
x
i
−
x
‾
G
)
(
x
i
−
x
‾
G
)
T
A_G=\sum_{i=1}^{n_G}(x_i-\overline x_G)(x_i-\overline x_G)^T
AG=i=1∑nG(xi−xG)(xi−xG)T
样本协方差矩阵
S
G
S_G
SG为
S
G
=
1
m
−
1
A
G
=
1
m
−
1
∑
i
=
1
n
G
(
x
i
−
x
‾
G
)
(
x
i
−
x
‾
G
)
T
S_G=\frac{1}{m-1}A_G=\frac{1}{m-1}\sum_{i=1}^{n_G}(x_i-\overline x_G)(x_i-\overline x_G)^T
SG=m−11AG=m−11i=1∑nG(xi−xG)(xi−xG)T其中
m
m
m为样本的维数(样本属性的个数)。