聚类算法大杂烩
1. 思维导图
2. 基本概念和使用场景
2.1 什么是“聚类”?
聚类是一种“无监督的学习”,即不需要通过标记训练样本,算法自身样本划分为若干个不相交的子集,每个子集称为一个“簇”。
试想一个这样的场景,A在整理书柜,他按照一定准则(使用频率、颜色、种类)划分归类书籍的过程,就是一个聚类的过程。
正式一点说:
2.2 聚类的使用
- 作为一个单独的过程,寻找数据内在的分布结构。
- 作为分类等其他学习任务的前驱过程。
2.3 性能度量(有效性指标)
最完美的情况下,簇内的数据相似度尽可能的高,簇间的数据相似度尽可能的低。
评价一个聚类结果的好坏,有一下两种方法:
- 外部指标:将聚类结果与参考模型进行比较,跟做完作业对答案差不多。
- 内部指标:直接考察聚类结果。
2.3.1 外部指标衡量法
2.3.1.1 簇内结果的衡量标准
样本间距离的计算
首先将样本两两组合配对,记为 x i , x j x_i, x_j xi,xj,那么总共有 ( m 2 ) \binom{m}{2} (2m)种取法。在对答案的过程中,无非会出现以下四种情况:
- 两样本分在一起了
- 按照聚类模型的分法, x i , x j x_i, x_j xi,xj在一起了,但是按照参考模型的分法, x i , x j x_i, x_j xi,xj未在一起。
- 按照聚类模型的分法, x i , x j x_i, x_j xi,xj没在一起,但是按照参考模型的分法, x i , x j x_i, x_j xi,xj在一起了。
- 按照聚类模型的分法, x i , x j x_i, x_j xi,xj没在一起,按照参考模型的分法, x i , x j x_i, x_j xi,xj也未在一起。
上述四种情况分别对应于:
所以,有
a
+
b
+
c
+
d
=
(
m
2
)
a+b+c+d=\binom{m}{2}
a+b+c+d=(2m)成立。
样本间聚类结果的衡量标准
-
Jaccard系数(Jaccard Coefficient, JC)
J C = a a + b + c (2.1) JC = \frac{a}{a+b+c} \tag{2.1} JC=a+b+ca(2.1) -
FM指数(Fowlkes and Mallows Index, FMI)
J C = a a + b a a + c (2.2) JC = \sqrt{\frac{a}{a+b}\frac{a}{a+c}} \tag{2.2} JC=a+baa+ca(2.2) -
Rand指数(Rand Index, RI)
J C = 2 ( a + d ) m ( m − 1 ) (2.3) JC = \frac{2(a+d)}{m(m-1)} \tag{2.3} JC=m(m−1)2(a+d)(2.3)
上述判定方法越大越好,且取值在 [ 0 , 1 ] [0, 1] [0,1]之间。
2.3.1.2 簇间的衡量标准
簇间距离的计算
- 第 u u u个簇中样本的数量: ∣ C u ∣ |C_u| ∣Cu∣
- 该簇内所构成的样本对的数量: ( ∣ C u ∣ 2 ) \binom{|C_u|}{2} (2∣Cu∣);
- 样本之间的距离公式: d i s t ( x i , x j ) dist(\boldsymbol{x_i}, \boldsymbol{x_j}) dist(xi,xj)
- 簇内样本间的平均距离:将该簇内的样本两两组合,所构成的样本对的数量。
A v g ( ∣ C p ∣ ) = ∑ 1 ≤ i ≤ j ≤ ∣ C u ∣ d i s t ( x i , x j ) ( ∣ C u ∣ 2 ) = 2 ∣ C u ∣ ( ∣ C u ∣ − 1 ) ∑ 1 ≤ i ≤ j ≤ ∣ C u ∣ d i s t ( x i , x j ) (2.4) \begin{aligned} Avg(|C_p|) &=\frac{\sum_{1 \leq i \leq j \leq |C_u|} dist(\boldsymbol{x_i}, \boldsymbol{x_j})}{\binom{|C_u|}{2}}\\ &=\frac{2}{|C_u|(|C_u|-1)}{\sum_{1 \leq i \leq j \leq |C_u|} dist(\boldsymbol{x_i}, \boldsymbol{x_j})} \tag{2.4} \end{aligned} Avg(∣Cp∣)=(2∣Cu∣)∑1≤i≤j≤∣Cu∣dist(xi,xj)=∣Cu∣(∣Cu∣−1)21≤i≤j≤∣Cu∣∑dist(xi,xj)(2.4)
- 簇内样本之间最远距离
d i a m ( ∣ C u ∣ ) = max 1 ≤ i ≤ j ≤ ∣ C u ∣ d i s t ( x i , x j ) (2.5) \begin{aligned} diam(|C_u|)= \max_{1 \leq i \leq j \leq|C_u|}dist(\boldsymbol{x_i}, \boldsymbol{x_j}) \tag{2.5} \end{aligned} diam(∣Cu∣)=1≤i≤j≤∣Cu∣maxdist(xi,xj)(2.5) - 两个簇之间最近样本间的距离
d m i n ( ∣ C u ∣ , ∣ C v ∣ ) = min x u ∈ ∣ C u ∣ , x v ∈ ∣ C v ∣ d i s t ( x u , x v ) (2.6) \begin{aligned} d_{min}(|C_u|, |C_v|)= \min_{\boldsymbol{x_u} \in |C_u|, \boldsymbol{x_v} \in |C_v|}dist(\boldsymbol{x_u}, \boldsymbol{x_v}) \tag{2.6} \end{aligned} dmin(∣Cu∣,∣Cv∣)=xu∈∣Cu∣,xv∈∣Cv∣mindist(xu,xv)(2.6) - 两个簇中心点间的距离
d c e n ( ∣ C u ∣ , ∣ C v ∣ ) = d i s t ( μ u , μ v ) (2.7) \begin{aligned} d_{cen}(|C_u|, |C_v|)=dist(\mu_u, \mu_v) \tag{2.7} \end{aligned} dcen(∣Cu∣,∣Cv∣)=dist(μu,μv)(2.7)
其中:
μ u = 1 ∣ C u ∣ ∑ 1 ≤ u ≤ ∣ C u ∣ x u μ v = 1 ∣ C v ∣ ∑ 1 ≤ v ≤ ∣ C v ∣ x v \mu_u = \frac{1}{|C_u|}\sum_{1\leq u \leq |C_u|}\boldsymbol{x_u}\\ \mu_v = \frac{1}{|C_v|}\sum_{1\leq v \leq |C_v|}\boldsymbol{x_v} μu=∣Cu∣11≤u≤∣Cu∣∑xuμv=∣Cv∣11≤v≤∣Cv∣∑xv
簇间聚类结果的衡量标准
-
DB指数(Davies-Bouldin Index, DBI) :值越小越好。
D B I = 1 k ∑ i = 1 k max i ≠ j ( A c g ( ∣ C i ∣ ) + A v g ( ∣ C j ∣ ) d c e n ( ∣ C i ∣ , ∣ C j ∣ ) ) (2.8) DBI = \frac{1}{k}\sum_{i=1}^{k} \max_{i \neq j} (\frac{Acg(|C_i|) + Avg(|C_j|)}{d_{cen}(|C_i|, |C_j|)}) \tag{2.8} DBI=k1i=1∑ki=jmax(dcen(∣Ci∣,∣Cj∣)Acg(∣Ci∣)+Avg(∣Cj∣))(2.8)- k k k:聚类的种类数目。
-
Dunn指数(Dunn Index, DI):值越大越好。
D I = min 1 ≤ i ≤ k { min j ≠ i d m i n ( C i , C j ) max 1 ≤ l ≤ k d i a m ( C l ) } (2.9) DI=\min_{1 \leq i \leq k} \{\min_{j \neq i}\frac{d_{min}(C_i, C_j)}{\max_{1 \leq l \leq k}diam(C_l)}\} \tag{2.9} DI=1≤i≤kmin{j=iminmax1≤l≤kdiam(Cl)dmin(Ci,Cj)}(2.9)
2.3.1.3 距离的计算
对于函数 d i s t dist dist,满足四个性质:
- 非负性: d i s t ( x i , x j ) > 0 dist(\boldsymbol{x_i}, \boldsymbol{x_j})>0 dist(xi,xj)>0
- 同一性: d i s t ( x i , x j ) = 0 , x i = x j dist(\boldsymbol{x_i}, \boldsymbol{x_j})=0, \boldsymbol{x_i}=\boldsymbol{x_j} dist(xi,xj)=0,xi=xj
- 对称性: d i s t ( x i , x j ) = d i s t ( x j , x i ) dist(\boldsymbol{x_i}, \boldsymbol{x_j})=dist(\boldsymbol{x_j}, \boldsymbol{x_i}) dist(xi,xj)=dist(xj,xi)
- 直递性: d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) dist(\boldsymbol{x_i}, \boldsymbol{x_j}) \leq dist(\boldsymbol{x_i}, \boldsymbol{x_k})+dist(\boldsymbol{x_k}, \boldsymbol{x_j}) dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)(不一定要满足,人、马、人马关系图)
计算公式:
-
有序数据: 能够通过数字表达远近关系的属性。
- 计算方法:
- 计算方法:
-
无序数据: 不能够通过数字表达远近关系的属性。 X = { w h i t e , b l u e , r e d } X=\{white, blue, red\} X={white,blue,red}。
- 计算方法: VDM(Value Difference Metric)
- 计算方法: VDM(Value Difference Metric)
-
有序+无序数据:
- 计算方法:
- 计算方法:
3. 聚类算法
3.1 原型聚类
3.1.1 K均值算法
3.1.2 学习向量量化
3.1.3 高斯混合聚类
3.2 密度聚类
3.3 层次聚类
4. 参考文献
- 《西瓜书》