机器学习入门-西瓜书总结笔记第九章


一、聚类任务

“无监督学习”(unsupervised learning) 中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。研究最多、应用最广的是 “聚类”(clustering)

  • 聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个 “簇”(cluster)。聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。
  • “簇标记”(cluster label)
  • 聚类即能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。在一些商业应用中需对新用户的类型进行判别,但定义“用户类型”对商家来说却可能不太容易,此时往往可先对用户数据进行聚类,根据聚类结果对每个簇定义为一个类,然后再基于这些类训练分类模型,用于判别新用户的类型

性能度量

  • 聚类性能度量亦称聚类 “有效性指标”(validity index)。与监督学习中的性能度量作用相似,对聚类结果,我们需通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。
  • “物以类聚”,即同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。换言之,聚类结果的 “簇内相似度”(intra-cluster similarity) 高且 “簇间相似度”(inter-cluster similarity) 低。
  • 聚类性能度量大致有两类。一类是将聚类结果与某个 “参考模型”(reference model) 进行比较,称为
    “外部指标”(external index) ;另一类是直接参考聚类结果而不利用任何参考模型,称为 “内部指标”(internal index)

对数据集 D = { x 1 , x 2 , ⋯   , x m } D = \{\pmb x_1,\pmb x_2,\cdots,\pmb x_m\} D={xxx1,xxx2,,xxxm},假定通过聚类给出的簇划分为 C = { C 1 , C 2 , ⋯   , C k } C = \{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , ⋯   , C s ∗ } C^* = \{C_1^*,C_2^*,\cdots,C_s^*\} C={C1,C2,,Cs}。相应的,令 λ \lambda λ λ ∗ \lambda^* λ分别表示与 C C C C ∗ C^* C对应的簇标记向量。我们将样本两两配对考虑,定义
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ ( λ i = λ j , λ i ∗ = λ j ∗ , i < j } , b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ ( λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } , c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ ( λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } , d = ∣ D D ∣ , D D = { ( x i , x j ) ∣ ( λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } , \begin{aligned} & a =|SS|,\quad SS = \{(\pmb x_i,\pmb x_j)|(\lambda_i =\lambda_j,\lambda_i^* =\lambda_j^*,i<j \},\\ & b =|SD|,\quad SD = \{(\pmb x_i,\pmb x_j)|(\lambda_i =\lambda_j,\lambda_i^* \ne\lambda_j^*,i<j \},\\ & c =|DS|,\quad DS = \{(\pmb x_i,\pmb x_j)|(\lambda_i \ne\lambda_j,\lambda_i^* =\lambda_j^*,i<j \},\\ & d =|DD|,\quad DD = \{(\pmb x_i,\pmb x_j)|(\lambda_i \ne\lambda_j,\lambda_i^* \ne\lambda_j^*,i<j \},\\ \end{aligned} a=SS,SS={(xxxi,xxxj)(λi=λj,λi=λj,i<j},b=SD,SD={(xxxi,xxxj)(λi=λj,λi=λj,i<j},c=DS,DS={(xxxi,xxxj)(λi=λj,λi=λj,i<j},d=DD,DD={(xxxi,xxxj)(λi=λj,λi=λj,i<j},
可导出下面这些常用的聚类性能度量外部指标:

  • Jaccard系数(Jaccard Coefficient,简称JC)
    JC ⁡ = a a + b + c \operatorname{JC} = \frac{a}{a+b+c} JC=a+b+ca
  • FM指数(Fowlkes and Mallows Index,简称FMI)
    FMI ⁡ = a a + b ⋅ a a + c \operatorname{FMI} = \sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}} FMI=a+baa+ca
  • Rand指数(Rand Index,简称RI)
    RI ⁡ = 2 ( a + d ) m ( m − 1 ) \operatorname{RI} = \frac{2(a+d)}{m(m-1)} RI=m(m1)2(a+d)
    显然,上述性能度量的结果值均在[0,1]区间,值越大越好。
    考虑聚类结果的簇划分 C = { C 1 , C 2 , ⋯   , C k } C = \{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck},定义
    avg ⁡ ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i < j ≤ ∣ C ∣ dist ⁡ ( x i , x j ) , diam ⁡ ( C ) = max ⁡ 1 ≤ i < j ≤ ∣ C ∣ dist ⁡ ( x i , x j ) , d min ⁡ ( C i , C j ) = min ⁡ x i ∈ C i , x j ∈ C j dist ⁡ ( x i , x j ) , d cen ⁡ ( C i , C j ) = dist ⁡ ( μ i , μ j ) , \begin{aligned} \operatorname{avg}(C) &= \frac{2}{|C|(|C|-1)}\sum_{1\le i <j\le |C|}\operatorname{dist}(\pmb x_i,\pmb x_j),\\ \operatorname{diam}(C) &=\operatorname{max}_{1\le i <j\le |C|}\operatorname{dist}(\pmb x_i,\pmb x_j),\\ d_{\operatorname{min}}(C_i,C_j) &= \operatorname{min}_{x_i\in C_i,x_j\in C_j}\operatorname{dist}(\pmb x_i,\pmb x_j),\\ d_{\operatorname{cen}}(C_i,C_j) & = \operatorname{dist}(\pmb \mu_i,\pmb \mu_j), \end{aligned} avg(C)diam(C)dmin(Ci,Cj)dcen(Ci,Cj)=C(C1)21i<jCdist(xxxi,xxxj),=max1i<jCdist(xxxi,xxxj),=minxiCi,xjCjdist(xxxi,xxxj),=dist(μμμi,μμμj),
    其中, dist ⁡ ( ⋅ , ⋅ ) \operatorname{dist}(\cdot,\cdot) dist(,)用于计算两个样本之间的距离; μ \pmb \mu μμμ代表簇C的中点点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i \pmb \mu = \frac{1}{|C|}\sum_{1\le i\le |C|}\pmb x_i μμμ=C11iCxxxi,显然avg©对应于簇C内样本间的平均距离,diam©对应于簇C内样本间的最远距离, d min ⁡ ( C i , C j ) d_ {\operatorname{min}}(C_i,C_j) dmin(Ci,Cj)对应于簇 C i C_i Ci C j C_j Cj最近样本间的距离, d cen ⁡ ( C i , C j ) d_ {\operatorname{cen}}(C_i,C_j) dcen(Ci,Cj)对应于簇 C i C_i Ci C j C_j Cj中心点间的距离
    可导出下面这些常用的聚类性能度量内部指标:
  • DB指数(Davies-Bouldin Index,简称DBI)
    DBI ⁡ = 1 k ∑ i = 1 k max ⁡ j ≠ i ( avg ⁡ ( C i ) + avg ⁡ ( C j ) d cen ⁡ ( C i , C j ) ) \operatorname{DBI} = \frac{1}{k}\sum_{i=1}^k\underset{j\ne i}{\operatorname{max}}(\frac{\operatorname{avg}(C_i)+\operatorname{avg}(C_j)}{d_{\operatorname{cen}}(C_i,C_j) }) DBI=k1i=1kj=imax(dcen(Ci,Cj)avg(Ci)+avg(Cj))
  • Dunn指数(Dunn Index ,简称DI)
    DI ⁡ = mix ⁡ 1 ≤ i ( avg ⁡ ( C i ) + avg ⁡ ( C j ) d cen ⁡ ( C i , C j ) ) \operatorname{DI} = \underset{1\le i}{\operatorname{mix}}(\frac{\operatorname{avg}(C_i)+\operatorname{avg}(C_j)}{d_{\operatorname{cen}}(C_i,C_j) }) DI=1imix(dcen(Ci,Cj)avg(Ci)+avg(Cj))
    显然,DBI的值越小越好,而DI则相反,越大越好

三、距离计算

对函数 dist ⁡ ( ⋅ , ⋅ ) \operatorname{dist}(\cdot,\cdot) dist(,),若它是一个“距离度量”(distance measure),则需满足一些基本性质:
非 负 性 : dist ⁡ ( x i , x j ) ≥ 0 ; 同 一 性 : dist ⁡ ( x i , x j ) = 0 , 当 且 仅 当 x i = x j 对 称 性 : dist ⁡ ( x i , x j ) = dist ⁡ ( x j , x i ) ; 直 递 性 : dist ⁡ ( x i , x j ) ≤ dist ⁡ ( x i , x k ) + dist ⁡ ( x k , x j ) ; \begin{aligned} &非负性:\operatorname{dist}(\pmb x_i,\pmb x_j)\ge 0;\\ &同一性:\operatorname{dist}(\pmb x_i,\pmb x_j)= 0,当且仅当\pmb x_i=\pmb x_j\\ &对称性:\operatorname{dist}(\pmb x_i,\pmb x_j)=\operatorname{dist}(\pmb x_j,\pmb x_i);\\ &直递性:\operatorname{dist}(\pmb x_i,\pmb x_j)\le\operatorname{dist}(\pmb x_i,\pmb x_k)+\operatorname{dist}(\pmb x_k,\pmb x_j);\\ \end{aligned} dist(xxxi,xxxj)0;dist(xxxi,xxxj)=0xxxi=xxxjdist(xxxi,xxxj)=dist(xxxj,xxxi);dist(xxxi,xxxj)dist(xxxi,xxxk)+dist(xxxk,xxxj);
给定样本 x i = ( x i 1 ; x i 2 ; ⋯   ; x i n ) \pmb x_i = (x_{i1};x_{i2};\cdots;x_{in}) xxxi=(xi1;xi2;;xin) x j = ( x j 1 ; x j 2 ; ⋯   ; x j n ) \pmb x_j = (x_{j1};x_{j2};\cdots;x_{jn}) xxxj=(xj1;xj2;;xjn),最常用的是“闵可夫斯基距离”(Minkowski distance)
d i s t m k ⁡ ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p \operatorname{dist_{mk}}(\pmb x_i, \pmb x_j)=(\sum_{u=1}^n|x_{iu} - x_{ju}|^p)^{\frac{1}{p}} distmk(xxxi,xxxj)=(u=1nxiuxjup)p1
p ≥ 1 p\ge 1 p1显然满足距离度量基本性质
当 p=2时,闵可夫斯基距离即欧式距离(Euclidean distance)
d i s t e d ⁡ ( x i , x j ) = ∣ ∣ x i − x j ∣ ∣ 2 = ( ∑ u = 1 n ∣ x i u − x j u ∣ 2 ) \operatorname{dist_{ed}}(\pmb x_i, \pmb x_j)=||\pmb x_i - \pmb x_j||_2=\sqrt{(\sum_{u=1}^n|x_{iu} - x_{ju}|^2)} disted(xxxi,xxxj)=xxxixxxj2=(u=1nxiuxju2)
当p=1时,闵可夫斯基距离即曼哈顿距离(Manhattan distance)
d i s t m a n ⁡ ( x i , x j ) = ∣ ∣ x i − x j ∣ ∣ 1 = ( ∑ u = 1 n ∣ x i u − x j u ∣ ) \operatorname{dist_{man}}(\pmb x_i, \pmb x_j)=||\pmb x_i - \pmb x_j||_1=(\sum_{u=1}^n|x_{iu} - x_{ju}|) distman(xxxi,xxxj)=xxxixxxj1=(u=1nxiuxju)
我们常将属性划分为 “连续属性”(continuous attribute)“离散属性”(categorical attribute)。然而,在讨论距离计算时,属性上是否定义了“序”关系更为重要。“有序属性”(ordinal attribute)“无序属性”(non-attribute)。显然,闵可夫斯基距离可用于有序属性
对于无序属性可采用 VDM(Value Difference Metric)。令 m u , a m_{u,a} mu,a表示属性u上取值为a的样本数, m u , a , i m_{u,a,i} mu,a,i表示第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值a与b之间的VDM距离为
VDM ⁡ p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ p \operatorname{VDM}_p(a,b) = \sum_{i=1}^k|\frac{m_{u,a,i}}{m_u,a}-\frac{m_{u,b,i}}{m_u,b}|^p VDMp(a,b)=i=1kmu,amu,a,imu,bmu,b,ip
于是,将闵可夫斯基距离和VDM结合即可处理混合属性。假定有 n c n_c nc个有序属性、 n − n c n-n_c nnc个无序属性,不失一般性,令有序属性排列在无序属性之前,则
MinkovDM ⁡ p ( x i , x j ) = ( ∑ u = 1 n c ∣ x i u − x j u ∣ p + ∑ u = n c + 1 n VDM ⁡ p ( x i u , x j u ) ) 1 p \operatorname{MinkovDM}_p(\pmb x_i,\pmb x_j) = (\sum_{u=1}^{n_c}|x_{iu}-x_{ju}|^p + \sum_{u=n_c+1}^n \operatorname{VDM}_p(x_{iu},x_{ju}))^{\frac{1}{p}} MinkovDMp(xxxi,xxxj)=(u=1ncxiuxjup+u=nc+1nVDMp(xiu,xju))p1
当样本空间中不同属性的重要性不同时,可使用“加权距离”(weighted distance)。以加权闵可夫斯基距离为例:
d i s t w m k ⁡ ( x i , x j ) = ( w 1 ⋅ ∣ x i 1 − x j 1 ∣ p + ⋯ + w n ⋅ ∣ x i n − x j n ∣ p ) \operatorname{dist_{wmk}}(\pmb x_i,\pmb x_j)=(w_1\cdot|x_{i1}-x_{j1}|^p+\cdots+w_n\cdot|x_{in}-x_{jn}|^p) distwmk(xxxi,xxxj)=(w1xi1xj1p++wnxinxjnp)

  • “非度量距离”(non-metric distance)
    在这里插入图片描述本节介绍的距离计算式都是事先定义好的,但在不少现实任务中,有必要基于数据样本来确定合适的距离计算式,这可通过 **“距离度量学习”(distance metric learning)**来实现

四、原型聚类

  • 原型聚类亦称 “基于原型的聚类”(prototype-based clustering) 此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示,不同的求解方式,将产生不同的算法

1.k均值算法

  • “k均值”(k-means) 算法针对聚类所得簇划分 C = { C 1 , C 2 , ⋯   , C k } C = \{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck}最小化平方误差
    E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 2 E = \sum_{i=1}^k\sum_{x\in C_i}||\pmb x - \pmb \mu_i||_2^2 E=i=1kxCixxxμμμi22
    其中 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \pmb \mu_i = \frac{1}{|C_i|}\sum_{x\in C_i}\pmb x μμμi=Ci1xCixxx是簇 C i C_i Ci的均值向量。直观来看,上式在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。
    最小化上式并不容易,找到它的最优解需考察样本集D所有可能的簇划分,这是一个NP难问题。因此,k均值算法采用了贪心策略,通过迭代优化来近似求解上式,算法流程如下。
    在这里插入图片描述其中第1行对均值向量进行初始化,在第4-8行与第9-16行依次对当前簇划分及均值向量迭代更新,若迭代更新后聚类结果保持不变,则第18行将当前簇划分结果返回。
    在这里插入图片描述

2.学习向量化

  • 与k均值算法类似,“学习向量量化”(Learning Vector Quantization,简称LVQ) 也是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是,LVQ假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类。

给定样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } D = \{(\pmb x_1,y_1),(\pmb x_2,y_2),\cdots,(\pmb x_m,y_m)\} D={(xxx1,y1),(xxx2,y2),,(xxxm,ym)},每个样本 x j \pmb x_j xxxj是由n个属性描述的特征向量 ( x j 1 ; x j 2 ; ⋯   ; x j n ) , y j ∈ Y (x_{j1};x_{j2};\cdots;x_{jn}),y_j\in \mathcal Y (xj1;xj2;;xjn),yjY是样本 x j \pmb x_j xxxj的类别标记。LVQ的目标是学得一组n维原型向量 { p 1 , p 2 , ⋯   , p q } \{\pmb p_1,\pmb p_2,\cdots,\pmb p_q\} {ppp1,ppp2,,pppq},每个原型向量代表一个聚类簇,簇标记 t i ∈ Y t_i\in \mathcal Y tiY.
在这里插入图片描述算法第1行先对原型向量进行初始化,例如对第q个簇从标记为 t q t_q tq的样本中随机选取一个作为原型向量。算法第2~12行对原型向量进行迭代优化。在每一轮迭代中,算法随机选取一个有标记的训练样本,找出与其距离最近的原型向量,并根据两者的类别标记是否一致来对原型向量进行相应的更新。
显然,LVQ的关键是第6-10行,即如何更新原型向量。直观上看,对样本 x j \pmb x_j xxxj,若最近的原型向量 p i ∗ \pmb p_i^* pppi x j \pmb x_j xxxj的类别标记相同,则 p i ∗ \pmb p_i^* pppi x j \pmb x_j xxxj的方向靠拢,此时新原型向量为
p ′ = p i ∗ + η ⋅ ( x j − p i ∗ ) \pmb p' = \pmb p_i^* + \eta\cdot(\pmb x_j - \pmb p_i^*) ppp=pppi+η(xxxjpppi)
p ′ \pmb p' ppp x j \pmb x_j xxxj之间的距离为
∣ ∣ p ′ − x j ∣ ∣ 2 = ∣ ∣ p i ∗ + η ⋅ ( x j − p i ∗ ) ∣ ∣ 2 = ( 1 − η ) ⋅ ∣ ∣ p i ∗ − x j ∣ ∣ 2 \begin{aligned} ||\pmb p' - \pmb x_j||_2 &= ||\pmb p_i^* + \eta\cdot(\pmb x_j - \pmb p_i^*)||_2\\ & = (1-\eta)\cdot||\pmb p_i^* - \pmb x_j||_2 \end{aligned} pppxxxj2=pppi+η(xxxjpppi)2=(1η)pppixxxj2
令学习率 η ∈ ( 0 , 1 ) \eta\in(0,1) η(0,1),则原型向量 p i ∗ \pmb p_i^* pppi在更新为 p ′ \pmb p' ppp之后将更接近 x j \pmb x_j xxxj.
类似的,若 p i ∗ \pmb p_i^* pppi x j \pmb x_j xxxj的类别标记不同,则更新后的原型向量与 x j \pmb x_j xxxj之间的距离将增大为 ( 1 + η ) ⋅ ∣ ∣ p i ∗ − x j ∣ ∣ 2 (1+\eta)\cdot||\pmb p_i^* - \pmb x_j||_2 (1+η)pppixxxj2,从而远离 x j \pmb x_j xxxj
在学得一组原型向量 { p 1 , p 2 , ⋯   , p q } \{\pmb p_1,\pmb p_2,\cdots,\pmb p_q\} {ppp1,ppp2,,pppq}后,即可实现对样本空间 χ \chi χ的簇划分。对任意样本 x \pmb x xxx,它将划入与其距离最近的原型向量所代表的簇中;换言之,每个原型向量 p i \pmb p_i pppi定义了与之相关的一个区域 R i R_i Ri,该区域中每个样本与 p i \pmb p_i pppi的距离不大于它与其他原型向量 p i ′ ( i ≠ i ′ ) \pmb p_{i'}(i\ne i') pppi(i=i)的距离,即
R i = { x ∈ χ ∣ ∣ ∣ x − p i ∣ ∣ 2 ≤ ∣ ∣ x − p i ′ ∣ ∣ 2 , i ′ ≠ i } R_i = \{\pmb x \in \chi |\quad ||\pmb x - \pmb p_i||_2 \le ||\pmb x - \pmb p_{i'}||_2,i'\ne i\} Ri={xxxχxxxpppi2xxxpppi2,i=i}
由此形成对样本空间 χ \chi χ的簇划分 { R 1 , R 2 , ⋯   , R q } \{R_1,R_2,\cdots,R_q\} {R1,R2,,Rq},该划分通常称为“Voronoi剖分”(Voronoi tessellation)
在这里插入图片描述

3.高斯混合聚类

  • 与k均值、LVQ用原型向量来刻画聚类结构不同,高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型
  • (多元)高斯分布的定义
    对n维样本空间 χ \chi χ中的随机向量 x \pmb x xxx,若 x \pmb x xxx服从高斯分布,其概率密度函数为
    p ( x ) = 1 ( 2 π ) n 2 ∣ Σ ∣ 1 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) , p(\pmb x) = \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}e^{-\frac{1}{2}(x - \mu)^T \Sigma^{-1}(x - \mu)}, p(xxx)=(2π)2nΣ211e21(xμ)TΣ1(xμ),
    其中 μ \pmb \mu μμμ是n为均值向量, Σ \Sigma Σ n × n n\times n n×n的协方差矩阵,高斯分布完全由均值向量 μ \pmb \mu μμμ 和协方差矩阵 Σ \Sigma Σ这两个参数确定。为了明确高斯分布与相应参数的依赖关系,将概率密度函数记为 p ( x ∣ μ , Σ ) p(\pmb x| \pmb \mu, \pmb \Sigma) p(xxxμμμ,ΣΣΣ)
    我们可定义高斯混合分布
    p M ( x ) = ∑ i = 1 k α i ⋅ p ( x ∣ μ i , Σ i ) p_{\mathcal M}(\pmb x) = \sum_{i=1}^k \alpha_i \cdot p(\pmb x| \pmb \mu_i, \pmb \Sigma_i) pM(xxx)=i=1kαip(xxxμμμi,ΣΣΣi)
    该分布共由k个混合成分组成,每个混合成分对应一个高斯分布。其中 μ i \pmb \mu_i μμμi Σ i \pmb \Sigma_i ΣΣΣi是第i个高斯混合成分的参数,而 α i ≥ 0 \alpha_i \ge 0 αi0为相应的 “混合系数”(mixture coefficient) ∑ i = 1 k α 1 = 1 \sum_{i=1}^k \alpha_1 = 1 i=1kα1=1
    假设样本的生成过程由高斯混合分布给出:首先,根据 α 1 , α 2 , ⋯   , α k \alpha_1,\alpha_2,\cdots,\alpha_k α1,α2,,αk定义的先验分布选择高斯混合成分,其中 α i \alpha_i αi为选择第i个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。
    若训练集 D = { x 1 , x 2 , ⋯   , x m } D = \{\pmb x_1,\pmb x_2,\cdots,\pmb x_m\} D={xxx1,xxx2,,xxxm}由上述过程生成,令随机变量 z j ∈ { 1 , 2 , ⋯   , k } z_j\in \{1,2,\cdots,k\} zj{1,2,,k}表示生成样本 x j \pmb x_j xxxj的高斯混合成分,其取值未知。显然, z j z_j zj的先验概率 P ( z j = i ) P(z_j = i) P(zj=i)对应于 α i ( i = 1 , 2 , ⋯   , k ) \alpha_i(i=1,2,\cdots,k) αi(i=1,2,,k).根据贝叶斯定理, z j z_j zj的后验概率分布对应于
    p M ( z j = i ∣ x j ) = P ( z j = i ) ⋅ p M ( x j ∣ z j = i ) p M ( x j ) = α i ⋅ p ( x j ∣ μ i , Σ i ) ∑ l = 1 k α l ⋅ p ( x j ∣ μ l , Σ l ) \begin{aligned} p_{\mathcal M}(z_j = i|\pmb x_j) &= \frac{P(z_j = i)\cdot p_{\mathcal M}(\pmb x_j|z_j = i)}{p_{\mathcal M}(\pmb x_j)}\\ & = \frac{\alpha_i \cdot p(\pmb x_j|\pmb \mu_i,\pmb \Sigma_i)}{ \sum_{l=1}^k \alpha_l \cdot p(\pmb x_j| \pmb \mu_l, \pmb \Sigma_l)} \end{aligned} pM(zj=ixxxj)=pM(xxxj)P(zj=i)pM(xxxjzj=i)=l=1kαlp(xxxjμμμl,ΣΣΣl)αip(xxxjμμμi,ΣΣΣi)
    换言之, p M ( z j = i ∣ x j ) p_{\mathcal M}(z_j = i|\pmb x_j) pM(zj=ixxxj)给出了样本 x j \pmb x_j xxxj由第i个高斯混合成分生成的后验概率。为方便叙述,将其简记为 γ j i ( i = 1 , 2 , ⋯   , k ) \gamma_{ji}(i = 1,2,\cdots,k) γji(i=1,2,,k)
    当高斯混合分布已知时,高斯混合聚类将样本集D划分为k个簇 C = { C 1 , C 2 , ⋯   , C k } \mathcal C = \{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck},每个样本 x j \pmb x_j xxxj的簇标记 λ j \lambda_j λj如下确定:
    λ j = argmax ⁡ i ∈ { 1 , 2 , ⋯   , k } γ j i \lambda_j = \underset{i\in\{1,2,\cdots,k\}}{\operatorname{argmax}}\gamma_{ji} λj=i{1,2,,k}argmaxγji
    因此,从原型聚类的角度来看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应后验概率确定
    如何求解高斯混合模型参数呢?显然,给定数据集D,可采用极大似然估计,即最大化(对数)似然
    L L ( D ) = ln ⁡ ( ∏ j = 1 m p M ( x ) ) = ∑ j = 1 m ln ⁡ ( ∑ i = 1 k α i ⋅ p ( x j ∣ μ i , Σ i ) ) \begin{aligned} LL(D) &= \operatorname{ln}(\prod_{j=1}^m p_{\mathcal M}(\pmb x))\\ & = \sum_{j=1}^m \operatorname{ln}( \sum_{i=1}^k \alpha_i \cdot p(\pmb x_j| \pmb \mu_i, \pmb \Sigma_i)) \end{aligned} LL(D)=ln(j=1mpM(xxx))=j=1mln(i=1kαip(xxxjμμμi,ΣΣΣi))
    常采用EM算法进行迭代优化求解。

极大似然估计推导过程暂略
μ i = ∑ j = 1 m γ j i x j ∑ j = 1 m γ j i Σ i = ∑ i = 1 m ( x j − μ i ) ( x j − μ i ) T ∑ j = 1 m γ j i α i = 1 m ∑ j = 1 m γ j i \begin{aligned} & \pmb \mu_i = \frac{\sum_{j=1}^m \gamma_{ji}x_j}{\sum_{j=1}^m \gamma_{ji}}\\ & \pmb \Sigma_i = \frac{\sum_{i=1}^m (x_j - \mu_i)(x_j - \mu_i)^T}{\sum_{j=1}^m \gamma_{ji}} \\ & \alpha_i = \frac{1}{m}\sum_{j=1}^m \gamma_{ji} \end{aligned} μμμi=j=1mγjij=1mγjixjΣΣΣi=j=1mγjii=1m(xjμi)(xjμi)Tαi=m1j=1mγji

高斯混合模型的EM算法:在每步迭代中,先根据当前参数来计算每个样本属于每个高斯成分的后验概率 γ j i \gamma_{ji} γji(E步),再根据推导公式更新模型参数(M步).
在这里插入图片描述
在这里插入图片描述

五、密度聚类

  • 密度聚类亦称 “基于密度的聚类”(density-based cluster),此类算法假设聚类结构能通过样本的分布的紧密程度确定。通常,密度聚类算法从样本密度的角度来考察样本之间的可连续性,并基于可连接样本不断拓展聚类簇以获得最终的聚类结果 。
  • DBSCAN是一种著名的密度聚类算法,它基于一组“邻域”(neightborhood)参数 ( ϵ , M i n P t s ) (\epsilon, MinPts) (ϵ,MinPts)来刻画样本分布的紧密程度。给定数据集 D = { x 1 , x 2 , ⋯   , x m } D = \{\pmb x_1,\pmb x_2,\cdots , \pmb x_m\} D={xxx1,xxx2,,xxxm},定义下面这几个概念:
  • ϵ \epsilon ϵ-领域:对 x j ∈ D \pmb x_j\in D xxxjD,其 ϵ \epsilon ϵ-领域包含样本集D中与 x j \pmb x_j xxxj不大于 ϵ \epsilon ϵ的样本,即 N ϵ ( x j ) = { x i ∈ D ∣ dist ⁡ ( x i , x j ) ≤ ϵ } ; N_{\epsilon}(\pmb x_j) = \{\pmb x_i \in D | \operatorname{dist}(\pmb x_i, \pmb x_j)\le \epsilon\}; Nϵ(xxxj)={xxxiDdist(xxxi,xxxj)ϵ};
  • 核心对象(core object):若 x j \pmb x_j xxxj ϵ \epsilon ϵ-领域至少包含 M i n P t s MinPts MinPts个样本,即 ∣ N ϵ ( x j ) ≥ M i n P t s ∣ |N_{\epsilon}(\pmb x_j)\ge MinPts| Nϵ(xxxj)MinPts,则 x j \pmb x_j xxxj是一个核心对象
  • 密度直达(directly density-reachable):若 x j \pmb x_j xxxj位于 x i \pmb x_i xxxi ϵ \epsilon ϵ-领域中,且 x i \pmb x_i xxxi是核心对象,则称 x j \pmb x_j xxxj x i \pmb x_i xxxi密度直达;
  • 密度可达(density-reachable):对于 x i \pmb x_i xxxi x j \pmb x_j xxxj,若存在样本序列 p 1 , p 2 , ⋯   , p n \pmb p_1,\pmb p_2,\cdots,\pmb p_n ppp1,ppp2,,pppn,其中 p 1 = x 1 , p n = p j \pmb p_1 =\pmb x_1,\pmb p_n =\pmb p_j ppp1=xxx1,pppn=pppj p i + 1 \pmb p_{i+1} pppi+1 p i \pmb p_{i} pppi密度密度直达,则称 x j \pmb x_j xxxj x i \pmb x_i xxxi密度可达
  • 密度相连(density-connected):对于 x i \pmb x_i xxxi x j \pmb x_j xxxj,若存在 x k \pmb x_k xxxk使得 x i \pmb x_i xxxi x j \pmb x_j xxxj均由 x k \pmb x_k xxxk密度可达,则称 x i \pmb x_i xxxi x j \pmb x_j xxxj密度相连
    在这里插入图片描述基于这些概念,DBSCAN将“簇”定义为:由密度可达关系导出的最大的密度相连样本集合。形式化地说,给定邻域参数 ( ϵ , M i n P t s ) (\epsilon,MinPts) (ϵ,MinPts),簇 C ⊆ D C\subseteq D CD是满足以下性质的飞空样本子集:
    连 接 性 ( c o n n e c t i v i t y ) : x i ∈ C , x j ∈ C ⇒ x i 与 x j 密 度 相 连 最 大 性 ( m a x i m a l i t y ) : x i ∈ C , x j 由 x i 密 度 可 达 , ⇒ x j ∈ C \begin{aligned} & 连接性(connectivity):\pmb x_i \in C,\pmb x_j \in C \Rightarrow \pmb x_i 与 \pmb x_j 密度相连\\ & 最大性(maximality):\pmb x_i \in C,\pmb x_j由\pmb x_i 密度可达 ,\Rightarrow \pmb x_j \in C \end{aligned} (connectivity):xxxiC,xxxjCxxxixxxj(maximality):xxxiC,xxxjxxxi,xxxjC
    DBSCAN算法先任选数据集中的一个核心对象为“种子”(seed),再由此出发确定相应的聚类簇。
    在这里插入图片描述算法先根据给定的领域参数 ( ϵ , M i n P t s ) (\epsilon,MinPts) (ϵ,MinPts)找出所有核心对象;然后以任一核心对象为出发点,找出由密度可达的样本生成聚类簇,直到所有核心对象均被访问过。
    在这里插入图片描述

六、层次聚类

  • 层次聚类(hierarchical clustering) 试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略

AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。这里的关键是如何计算聚类簇之间的距离。实际上,每个簇是一个样本集合,因此,只需要采用集合的某种距离即可。例如,给定聚类簇 C i C_i Ci C j C_j Cj,可通过下面的式子来计算距离:
最 小 距 离 : d min ⁡ ( C i , C j ) = min ⁡ x ∈ C i , z ∈ C j dist ⁡ ( x , z ) 最 大 距 离 : d max ⁡ ( C i , C j ) = max ⁡ x ∈ C i , z ∈ C j dist ⁡ ( x , z ) 平 均 距 离 : d avg ⁡ ( C i , C j ) = 1 ∣ C i ∣ ∣ C i ∣ ∑ x ∈ C i ∑ x ∈ C j dist ⁡ ( x , z ) \begin{aligned} & 最小距离:d_{\operatorname{min}}(C_i,C_j) = \underset{x\in C_i,z\in C_j}{\operatorname{min}}\operatorname{dist}(\pmb x, \pmb z)\\ & 最大距离:d_{\operatorname{max}}(C_i,C_j) = \underset{x\in C_i,z\in C_j}{\operatorname{max}}\operatorname{dist}(\pmb x, \pmb z)\\ & 平均距离:d_{\operatorname{avg}}(C_i,C_j) = \frac{1}{|C_i||C_i|}\sum_{x\in C_i}\sum_{x\in C_j}\operatorname{dist}(\pmb x, \pmb z)\\ \end{aligned} dmin(Ci,Cj)=xCi,zCjmindist(xxx,zzz)dmax(Ci,Cj)=xCi,zCjmaxdist(xxx,zzz)davg(Ci,Cj)=CiCi1xCixCjdist(xxx,zzz)
当聚类簇距离由 d min ⁡ d_{\operatorname{min}} dmin d max ⁡ d_{\operatorname{max}} dmax d avg ⁡ d_{\operatorname{avg}} davg计算时,AGNES算法被相应地称为 “单链接”(single-linkage)“全链接”(complete-linkage)“均链接”(average-linkage) 算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值