1.基本概念
1.1 相似度或距离
聚类的核心概念是相似度(similarity)或距离(distance),有多种相似度或距离的定义,根据问题特性选择不同相似度。
1.1.1 闵可夫斯基距离
闵可夫斯基距离越大相似度越小,距离越小相似度越大
d
i
j
=
(
∑
1
m
∣
x
k
i
−
x
k
j
∣
p
)
1
p
d_{ij}=(\sum^m_1|x_{ki}-x_{kj}|^p)^\frac{1}{p}
dij=(∑1m∣xki−xkj∣p)p1
当p=1时,称为曼哈顿距离
当p=2时,称为欧氏距离
当p=∞时称为切比雪夫距离,取各个坐标数值差的最大值
1.1.2 马哈拉诺比斯距离
简称马氏距离,考虑各个分量(特征)之间的相关性并于各个分量的尺度无关。距离越大相似性越小,距离越小相似度越大。
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_i=(x_{1i},x_{2i},...,x_{mi})^T
xi=(x1i,x2i,...,xmi)T,
x
j
=
(
x
1
j
,
x
2
j
,
.
.
.
,
x
m
j
)
T
x_j=(x_{1j},x_{2j},...,x_{mj})^T
xj=(x1j,x2j,...,xmj)T
S为协方差矩阵,马氏距离可以看为欧氏距离的推广
1.1.3 样本系数
相关系数绝对值越接近1,样本越相似,越接近于0,相似度越低
r
i
j
=
∑
k
=
1
m
(
x
k
i
−
E
(
x
i
)
)
(
x
k
j
−
E
(
x
j
)
)
[
∑
k
=
1
m
(
x
k
i
−
E
(
x
i
)
)
2
∑
k
=
1
m
(
x
k
j
−
E
(
x
j
)
)
2
]
1
2
r_{ij}=\frac{\sum^m_{k=1}{(x_{ki}-E(x_i))(x_{kj}-E(x_j))}}{[\sum^m_{k=1}{(x_{ki}-E(x_i))^2\sum^m_{k=1}(x_{kj}-E(x_j))^2}]^\frac{1}{2}}
rij=[∑k=1m(xki−E(xi))2∑k=1m(xkj−E(xj))2]21∑k=1m(xki−E(xi))(xkj−E(xj))
1.1.4 夹角余弦
样本之间的相似度也可以用夹角余弦(cosine)来表示,夹角余弦越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
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^m_{k=1}x_{ki}x_{kj}}{[\sum^m_{k=1}x^2_{ki}\sum^m_{k=1}x^2_{kj}]^\frac{1}{2}}
sij=[∑k=1mxki2∑k=1mxkj2]21∑k=1mxkixkj
1.2 类或蔟
通过聚类得到的类或蔟,本质是样本的子集,分类后类之间存在交集为软聚类,交集为空集为硬聚类。
使用
G
G
G表示类,用
x
i
,
x
j
x_i,x_j
xi,xj表示类中的样本,用
n
G
n_G
nG表示
G
G
G中样本个数,
d
i
j
d_{ij}
dij表示两样本间的距离。
常见类定义:
- d i j ≤ T , T d_{ij}\le{T},T dij≤T,T为给定正数
- 集合G中任意两样本满足条件
- 集合中任一点必定存在另一点满足条件
- 对于任意一个类G,满足 1 n G − 1 ∑ d i j ≤ T \frac{1}{n_G-1}\sum{d_{ij}}\le{T} nG−11∑dij≤T
- 对给定正数T, V,集合G中任意两个样本的距离满足 1 n G ( n G − 1 ) ∑ ∑ d i j ≤ T , d i j ≤ V \frac{1}{n_G(n_G-1)}\sum\sum{d_{ij}}\le{T}, d_{ij}\le{V} nG(nG−1)1∑∑dij≤T,dij≤V
1.3 类常用特征
1.3.1 类的均值,又称为类的中心
E
(
x
i
)
E(x_i)
E(xi)
1.3.2 类的直径
D
G
D_G
DG
类的直径定义为类中任意两个样本之间的最大距离
D
G
=
m
a
x
d
i
j
D_G=max { } d_{ij}
DG=maxdij
1.3.3 类的样本散布矩阵
A
G
A_G
AG与样本协方差矩阵
S
G
S_G
SG
- 样本散布矩阵
- A G = ∑ i = 1 n G ( x i − E ( x i ) ) ( x i − E ( x i ) ) T A_G=\sum_{i=1}^{n_G}{(x_i-E(x_i))(x_i-E(x_i))^T} AG=∑i=1nG(xi−E(xi))(xi−E(xi))T
- 样本协方差矩阵
- S G = 1 m − 1 A G S_G=\frac{1}{m-1}A_G SG=m−11AG m为样本维数
1.4 类与类之间的距离
类之间的距离也称作连接
G
p
类
包
含
n
p
个
样
本
,
G
q
包
含
n
p
个
样
本
,
分
别
用
x
p
‾
,
x
q
‾
表
示
均
值
,
即
类
中
心
G_p类包含n_p个样本,G_q包含n_p个样本,分别用\overline{x_p},\overline{x_q}表示均值,即类中心
Gp类包含np个样本,Gq包含np个样本,分别用xp,xq表示均值,即类中心
- 最短距离或单连接
- D p q = m i n { d i j ∣ x i ∈ G p , x j ∈ G q } D_{pq}=min\{d_{ij}|x_i\in G_p,x_j\in G_q\} Dpq=min{dij∣xi∈Gp,xj∈Gq}
- 最长距离或完全连接
- D p q = m a x { d i j ∣ x i ∈ G p , x j ∈ G q } D_{pq}=max\{d_{ij}|x_i\in G_p,x_j\in G_q\} Dpq=max{dij∣xi∈Gp,xj∈Gq}
- 中心距离
- 即中心点之间的距离
- 平均距离
- D p q = 1 n p ( n q ) ∑ ∑ d i j D_{pq}=\frac{1}{n_p(n_q)}\sum\sum{d_{ij}} Dpq=np(nq)1∑∑dij
2. 层次聚类
分为聚合(自下而上聚类)及分裂(自上而下聚类)两种方法。
聚合即讲每个样本单独作为一个类,通过将相距最近两类合并建立新类,直到满足停止条件。
分裂聚类开始将所有样本作为一个类,通过将相距最远样本分为两个新类,直到满足停止条件。
3. k均值聚类
k均值聚类基于样本集合划分的聚类算法,k均值聚类将样本集合划分为k个子集,构成k个类,将样本分入类中使得所属类的中心的距离最小。k均值聚类属于硬聚类。
3.1 损失函数
定义样本与其所属类的中心之间的距离的总和为损失函数(欧氏距离平方)
W
(
C
)
=
∑
l
=
1
k
∑
C
(
i
)
=
l
∣
∣
x
i
−
x
‾
l
∣
∣
2
W(C)=\sum^k_{l=1}\sum_{C(i)=l}||x_i-\overline{x}_l||^2
W(C)=∑l=1k∑C(i)=l∣∣xi−xl∣∣2
x
‾
l
\overline{x}_l
xl是第l个类的均值或者中心。
即求损失函数最小,分法有极多种,因此最优解求解为np困难问题,使用迭代法求解。
3.2 算法
- 输入:n个样本集合X
- 输出:聚类结果C
- 初始化:令t=0,随机选择k个样本点作为初始聚类中心
- 对样本聚类,对固定的类中心点 m t = ( m 1 t , . . . m l t , . . . , m k t ) m^t=(m_1^t,...m_l^t,...,m_k^t) mt=(m1t,...mlt,...,mkt),即每个类的中心,计算每个样本到各类距离,选择最近的中心的类中聚类
- 重新计算类中心,对聚类结果 C t C^t Ct计算当前各类中样本均值,作为新的类中心
- 迭代直到收敛或符合停止条件
- 否则t=t+1,重复
3.3 算法特性
- 总体特点:基于划分的聚类方法,类别数事先指定,以欧式距离平方和表示样本间距离,以中心或样本均值表示类别,以样本到所属类中心距离和为优化目标,得到类别是平坦,非层次化的,迭代算法,不能保证全局最优。
- 收敛性:k均值聚类属于启发式算法,初始中心选择会影响聚类结果
- 初始类选择:可以用层次聚类对样本进行聚类,得到k类停止,选择每个类中离中心点最近的点作为中心点
- 类别数选择:尝试使用不同k值聚类,一般聚类结果质量可以使用类的平均直径衡量。一般而言类别数增加到某个值,平均直径不变,此时k值最优,实验时可以使用二分法快速找到最优值。