假设有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×n⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋯x1nx2n⋮xmn⎦⎥⎥⎥⎤
聚类的核心是相似度(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=1∑m∣xki−xkj∣p)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=1∑m∣xki−xkj∣2)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=1∑m∣xki−xkj∣
Chebyshev distance: d i j = max k ∣ x k i − x k j ∣ d_{ij}=\max\limits_k|x_{ki}-x_{kj}| dij=kmax∣xki−xkj∣
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=[(xi−xj)TS−1(xi−xj)]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=1∑m(xki−xˉi)2k=1∑m(xkj−xˉj)2]21k=1∑m(xki−xˉi)(xkj−xˉ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=1∑mxki2k=1∑mxkj2)21k=1∑mxkixkj
用G表示类或簇, n G n_G nG表示G中样本的个数。
定义1 设T为给定的正数,若集合G中任意两个样本 x i x_i xi和 x j x_j xj,有 d i j ≤ T d_{ij}\le T dij≤T,则称G为一个类或簇。
定义2 设T为给定的是正数,若对集合G的任意样本 x i x_i xi,一定存在G中的另一个样本 x j x_j xj,使得 d i j ≤ T d_{ij}\le T dij≤T,则称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 nG−11xj∈G∑dij≤T
则称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(nG−1)1xi∈G∑xj∈G∑dij≤T
d i j ≤ V d_{ij}\le V dij≤V
则称G为一个类或簇。
①类的均值 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=1∑nGxi
②类的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,xj∈Gmaxdij
③类的样本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=1∑nG(xi−xˉG)(xi−xˉG)T
S G = 1 m − 1 A G S_G=\frac{1}{m-1}A_G SG=m−11AG
符号: 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{dij∣xi∈Gp,xj∈Gq}
①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{dij∣xi∈Gp,xj∈Gq}
③中心距离
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=npnq1xi∈Gp∑xj∈Gq∑dij
假设:类别之间存在层次结构
①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个样本进行聚类。
未来补充一个层次聚类图。
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)
通过损失函数的最小化选取最优的划分或函数 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=1∑m(xki−xkj)2=∣∣xi−xj∣∣2
k均值聚类的最优解求解问题是NP困难问题,故在此略去。
输入: 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个类中。
1 总体特点
基于划分的聚类方法;
类别数k事先给定;
以欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别;
以样本和其所属类的中心之间的距离的总和为最优化的目标函数;
得到的类别是平坦的、非层次化的;
算法是迭代算法,不能保证得到全局最优。
2 收敛性
k均值聚类属于启发式算法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果。
3 初始类的选择
选择不同的初始中心,会得到不同的聚类结果。
可以用层次聚类选择初始中心。(问:那还关k均值聚类啥事?)
4 类别数k的选择
聚类结果的质量可以用类的平均直径来衡量。
一般地,类别数较小时,平均直径较大;类别数增加到某个值时,平均直径会不变,那么这个值就是最优的k值。实验时可以用二分法查找得到最优的k值。(以后补个图)
这一章知识点很简单,但是我还没想好怎么实现。以后再说吧。另外,如果有书写错误和知识点错误请指出!抱拳~