《统计学习方法》学习笔记 第十四章 聚类方法

目录

  • 1 聚类的基本概念
    • 1.1 相似度或距离
    • 1.2 类(class)或簇(cluster)
      • 1.2.1 类或簇的定义
      • 1.2.2 类的特征
    • 1.3 类与类之间的距离(linkage)
  • 2 Hierarchical clustering
  • 3 k-means clustering
    • 3.1 模型
    • 3.2 策略
    • 3.3 算法
    • 3.4 算法特性
  • 总结

前情提要:见第十三章 无监督学习概论

1 聚类的基本概念

1.1 相似度或距离

假设有n个样本,每个样本由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 & &\vdots\\ x_{m1}& x_{m2}&\cdots & x_{mn} \end{matrix} \right] X=[xij]m×nx11x21xm1x12x22xm2x1nx2nxmn

聚类的核心是相似度(similarity)或距离(distance)。

1 Minkowski distance

d i j = ( ∑ k = 1 m ∣ x k i − x k j ∣ p ) 1 p d_{ij}=\bigg(\sum\limits_{k=1}^m|x_{ki}-x_{kj}|^p\bigg)^\frac{1}{p} dij=(k=1mxkixkjp)p1

Euclidean distance: d i j = ( ∑ k = 1 m ∣ x k i − x k j ∣ 2 ) 1 2 d_{ij}=\bigg(\sum\limits_{k=1}^m|x_{ki}-x_{kj}|^2\bigg)^\frac{1}{2} dij=(k=1mxkixkj2)21

Manhattan distance: d i j = ∑ k = 1 m ∣ x k i − x k j ∣ d_{ij}=\sum\limits_{k=1}^m|x_{ki}-x_{kj}| dij=k=1mxkixkj

Chebyshev distance: d i j = max ⁡ k ∣ x k i − x k j ∣ d_{ij}=\max\limits_k|x_{ki}-x_{kj}| dij=kmaxxkixkj

2 Mahalanobis distance

考虑各个分量(特征)之间的相关性并与各个分量的尺度无关。马氏距离是欧氏距离的推广。

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=[(xixj)TS1(xixj)]21

3 Correlation coefficient
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 ∑ k = 1 m ( x k j − x ˉ j ) 2 ] 1 2 r_{ij}=\frac{\sum\limits_{k=1}^m(x_{ki}-\bar{x}_i)(x_{kj}-\bar{x}_j)}{\big[\sum\limits_{k=1}^m(x_{ki}-\bar x_i)^2\sum\limits_{k=1}^m(x_{kj}-\bar x_j)^2\big]^\frac{1}{2}} rij=[k=1m(xkixˉi)2k=1m(xkjxˉj)2]21k=1m(xkixˉi)(xkjxˉj)

4 cosine
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\limits_{k=1}^mx_{ki}x_{kj}}{\big(\sum\limits_{k=1}^mx_{ki}^2\sum\limits_{k=1}^mx_{kj}^2\big)^\frac{1}{2}} sij=(k=1mxki2k=1mxkj2)21k=1mxkixkj

1.2 类(class)或簇(cluster)

用G表示类或簇, n G n_G nG表示G中样本的个数。

1.2.1 类或簇的定义

定义1 设T为给定的正数,若集合G中任意两个样本 x i x_i xi x j x_j xj,有 d i j ≤ T d_{ij}\le T dijT,则称G为一个类或簇。

定义2 设T为给定的是正数,若对集合G的任意样本 x i x_i xi,一定存在G中的另一个样本 x j x_j xj,使得 d i j ≤ T d_{ij}\le T dijT,则称G为一个类或簇。

定义3 设T为给定的正数,若对集合G中任意一个样本 x i x_i xi,G中的另一个样本 x j x_j xj满足
1 n G − 1 ∑ x j ∈ G d i j ≤ T \frac{1}{n_G-1}\sum\limits_{x_j\in G}dij\le T nG11xjGdijT
则称G为一个类或簇。

定义4 设T和V为给定的两个正数,如果集合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\limits_{x_i\in G}\sum\limits_{x_j\in G}d_{ij}\le T nG(nG1)1xiGxjGdijT
d i j ≤ V d_{ij}\le V dijV
则称G为一个类或簇。

1.2.2 类的特征

①类的均值 x ˉ G \bar x_G xˉG,又称类的中心
x ˉ G = 1 n G ∑ i = 1 n G x i \bar x_G=\frac{1}{n_G}\sum\limits_{i=1}^{n_G}x_i xˉG=nG1i=1nGxi

②类的diameter D G D_G DG
D G = max ⁡ x i , x j ∈ G d i j D_G=\max\limits_{x_i,x_j\in G} d_{ij} DG=xi,xjGmaxdij

③类的样本scatter matrix A G A_G AG 和 样本covariance matrix S G S_G SG
A G = ∑ i = 1 n G ( x i − x ˉ G ) ( x i − x ˉ G ) T A_G=\sum\limits_{i=1}^{n_G}(x_i-\bar x_G)(x_i-\bar x_G)^T AG=i=1nG(xixˉG)(xixˉG)T
S G = 1 m − 1 A G S_G=\frac{1}{m-1}A_G SG=m11AG

1.3 类与类之间的距离(linkage)

符号: G p , n p , x ˉ p G_p,n_p,\bar x_p Gp,np,xˉp G q , n q , x ˉ q G_q,n_q,\bar x_q Gq,nq,xˉq

①single linkage
D p q = min ⁡ { 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{dijxiGp,xjGq}

①complete linkage
D p q = max ⁡ { 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{dijxiGp,xjGq}

③中心距离
D p q = d x ˉ p x ˉ q D_{pq}=d_{\bar x_p\bar x_q} Dpq=dxˉpxˉq

④平均距离
D p q = 1 n p n q ∑ x i ∈ G p ∑ x j ∈ G q d i j D_{pq}=\frac{1}{n_pn_q}\sum\limits_{x_i\in G_p}\sum\limits_{x_j\in G_q}d_{ij} Dpq=npnq1xiGpxjGqdij

2 Hierarchical clustering

假设:类别之间存在层次结构

①agglomerative,buttom-up
②divisive,top-down

聚合聚类的三个要素:
①距离或相似度(闵可夫斯基距离,马哈拉诺比斯距离,相关系数,夹角余弦);
②合并规则(类间距离最小:最小距离,最大距离,中心距离,平均距离);
③停止条件(类的个数或直径达到阈值)。

例1 给定5个样本的集合,样本之间的欧氏距离由如下矩阵D表示:
D = [ d i j ] 5 × 5 = [ 0 7 2 9 3 7 0 5 4 6 2 5 0 8 1 9 4 8 0 5 3 6 1 5 0 ] D=[d_{ij}]_{5\times5}=\left[ \begin{matrix} 0&7&2&9&3\\ 7&0&5&4&6\\ 2&5&0&8&1\\ 9&4&8&0&5 \\ 3&6&1&5&0 \end{matrix} \right] D=[dij]5×5=0729370546250819480536150
应用聚合层次聚类法对这5个样本进行聚类。
未来补充一个层次聚类图。

3 k-means clustering

3.1 模型

k均值聚类的模型是一个从样本到类的函数。
X = { x 1 , x 2 , ⋯   , x n } → i ∈ { 1 , 2 , ⋯   , n } X=\{x_1,x_2,\cdots,x_n\}\rightarrow i\in\{1,2,\cdots,n\} X={x1,x2,,xn}i{1,2,,n}
{ G 1 , G 2 , ⋯   , G k } → l ∈ { 1 , 2 , ⋯   , k } \{G_1,G_2,\cdots,G_k\}\rightarrow l\in\{1,2,\cdots,k\} {G1,G2,,Gk}l{1,2,,k}
l = C ( i ) l=C(i) l=C(i)

3.2 策略

通过损失函数的最小化选取最优的划分或函数 C ∗ C^* C

采用squared Euclidean distance作为样本之间的距离
d ( x i , x j ) = ∑ k = 1 m ( x k i − x k j ) 2 = ∣ ∣ x i − x j ∣ ∣ 2 d(x_i,x_j)=\sum\limits_{k=1}^m(x_{ki}-x_{kj})^2=||x_i-x_j||^2 d(xi,xj)=k=1m(xkixkj)2=xixj2

k均值聚类的最优解求解问题是NP困难问题,故在此略去。

3.3 算法

输入: n个样本的集合X;
输出: 样本集合的聚类 C ∗ C^* C
(1)初始聚类中心 m ( 0 ) = ( m 1 ( 0 ) , m 2 ( 0 ) , ⋯   , m k ( 0 ) ) m^{(0)}=(m_1^{(0)},m_2^{(0)},\cdots,m_k^{(0)}) m(0)=(m1(0),m2(0),,mk(0)) t = 0 t=0 t=0
(2)计算每个样本到类中心的距离,将每个样本指派到与其最近的中心的类中;
(3) m ( t ) → m ( t + 1 ) = ( m 1 ( t + 1 ) , m 2 ( t + 1 ) , ⋯   , m k ( t + 1 ) ) m^{(t)}\to m^{(t+1)}=(m_1^{(t+1)},m_2^{(t+1)},\cdots,m_k^{(t+1)}) m(t)m(t+1)=(m1(t+1),m2(t+1),,mk(t+1))
(4)如果迭代收敛或满足停止条件,输出 C ∗ C^* C;否则, t = t + 1 → t=t+1\to t=t+1(2)。

例2 给定含有5个样本的集合 X = [ 0 0 1 5 5 2 0 0 0 2 ] X=\left[ \begin{matrix} 0&0&1&5&5\\ 2&0&0&0&2 \end{matrix} \right] X=[0200105052],用k均值聚类算法将样本聚到2个类中。

3.4 算法特性

1 总体特点
基于划分的聚类方法;
类别数k事先给定;
以欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别;
以样本和其所属类的中心之间的距离的总和为最优化的目标函数;
得到的类别是平坦的、非层次化的;
算法是迭代算法,不能保证得到全局最优。

2 收敛性
k均值聚类属于启发式算法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果。

3 初始类的选择
选择不同的初始中心,会得到不同的聚类结果。
可以用层次聚类选择初始中心。(问:那还关k均值聚类啥事?)

4 类别数k的选择
聚类结果的质量可以用类的平均直径来衡量。
一般地,类别数较小时,平均直径较大;类别数增加到某个值时,平均直径会不变,那么这个值就是最优的k值。实验时可以用二分法查找得到最优的k值。(以后补个图)

总结

这一章知识点很简单,但是我还没想好怎么实现。以后再说吧。另外,如果有书写错误和知识点错误请指出!抱拳~

你可能感兴趣的:(统计学习方法,聚类算法)