Chapter 9 Clustering 聚类

本文介绍了聚类任务的基本概念,包括聚类的目标、常见的聚类性能度量指标以及多种聚类算法,如原型聚类、密度聚类和层次聚类等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chapter 9 Clustering

9.1 聚类任务

聚类(clustering)是一种研究多、应用广的一种无监督学习(unsupervised learning)算法。将数据集中的样本划分为若干不相交子集,每个子集亦称为‘簇’(cluster)。
样本集含有m个n维的无标记样本:
D={x1,x2,...,xm}D=\left\{ \boldsymbol{x}_1,\boldsymbol{x}_{2},...,\boldsymbol{x}_m \right\}D={x1,x2,...,xm}
其中 xi=(xi1;xi2;...;xin)\boldsymbol{x}_i=\left( x_{i1};x_{i2};...;x_{in} \right)xi=(xi1;xi2;...;xin)为n维向量
聚类算法运行后将样本集划分为k个不相交的簇:
{Cl  ∣  l=1,2,...,k}\left\{ C_l\,\, \mid \,\,l=1,2,...,k \right\}{Cll=1,2,...,k}
则样本xj\boldsymbol{x}_jxj的簇标记(cluster label)为:
λj∈{1,2,...,k}\lambda _j\in \left\{ 1,2,...,k \right\}λj{1,2,...,k}
将每个样本的簇标记整合成向量,得到样本集的聚类结果:
λ=(λ1,λ2,...,λm)\boldsymbol{\lambda }=\left( \lambda _1,\lambda _2,...,\lambda _m \right)λ=(λ1,λ2,...,λm)
 

9.2 性能度量

聚类性能度量亦称聚类有效性指标(validty index),用以评价聚类结果的好坏,有些亦可作为聚类过程的优化目标。

  • 外部指标(external index)
    将聚类结果与参考模型(reference model)比较,当聚类划分的簇为C={C1,C2,...,Ck}\boldsymbol{C}=\left\{ C_1,C_2,...,C_k \right\}C={C1,C2,...,Ck},参考模型划分的簇为C∗={C1∗,C2∗,...,Ck∗}\boldsymbol{C}^*=\left\{ C_{1}^{*},C_{2}^{*},...,C_{k}^{*} \right\}C={C1,C2,...,Ck}时,定义:
    在C中隶属相同簇,在C*中隶属相同簇的样本对集合SS(Same Same): a=∣SS∣,∣SS∣={(xj,xj)  ∣  λi=λj,λi∗=λj∗,i<j}a=\left| SS \right|, \left| SS \right|=\left\{ \left( x_j,x_j \right) \,\, \mid \,\,\lambda _i=\lambda _j,\lambda _{i}^{*}=\lambda _{j}^{*},i<j \right\}a=SS,SS={(xj,xj)λi=λj,λi=λj,i<j}
    在C中隶属相同簇,在C*中隶属相同簇的样本对集合SS(Same Same): a=∣SS∣,∣SS∣={(xj,xj)  ∣  λi=λj,λi∗=λj∗,i<j}a=\left| SS \right|, \left| SS \right|=\left\{ \left( x_j,x_j \right) \,\, \mid \,\,\lambda _i=\lambda _j,\lambda _{i}^{*}=\lambda _{j}^{*},i<j \right\}a=SS,SS={(xj,xj)λi=λj,λi=λj,i<j}
    在C中隶属相同簇,在C*中隶属不同簇的样本对集合SD(Same Different): b=∣SS∣,∣SS∣={(xj,xj)  ∣  λi=λj,λi∗≠λj∗,i<j}b=\left| SS \right|, \left| SS \right|=\left\{ \left( x_j,x_j \right) \,\, \mid \,\,\lambda _i=\lambda _j,\lambda _{i}^{*}\ne \lambda _{j}^{*},i<j \right\}b=SS,SS={(xj,xj)λi=λj,λi=λj,i<j}
    在C中隶属不同簇,在C*中隶属相同簇的样本对集合DS(Different Same): c=∣SS∣,∣SS∣={(xj,xj)  ∣  λi≠λj,λi∗=λj∗,i<j}c=\left| SS \right|, \left| SS \right|=\left\{ \left( x_j,x_j \right) \,\, \mid \,\,\lambda _i\ne \lambda _j,\lambda _{i}^{*}=\lambda _{j}^{*},i<j \right\}c=SS,SS={(xj,xj)λi=λj,λi=λj,i<j}
    在C中隶属不同簇,在C*中隶属不同簇的样本对集合DD(Different Different):d=∣SS∣,∣SS∣={(xj,xj)  ∣  λi≠λj,λi∗≠λj∗,i<j}d=\left| SS \right|, \left| SS \right|=\left\{ \left( x_j,x_j \right) \,\, \mid \,\,\lambda _i\ne \lambda _j,\lambda _{i}^{*}\ne \lambda _{j}^{*},i<j \right\}d=SS,SS={(xj,xj)λi=λj,λi=λj,i<j}
    由上述定义得到下表中聚类性能度量评价外部指标:
性能度量外部指标表达式([0,1]内越大越好)
Jaccard系数JC=aa+b+cJC=\frac{a}{a+b+c}JC=a+b+ca
FM系数FMI=aa+b⋅aa+cFMI=\sqrt{\frac{a}{a+b}\cdot \frac{a}{a+c}}FMI=a+baa+ca
Rand系数RI=2(a+d)m(m−1)RI=\frac{2\text{(}a+d\text{)}}{m\left( m-1 \right)}RI=m(m1)2a+d

 

  • 内部指标(internal index)
    当聚类划分的簇为C={C1,C2,...,Ck}\boldsymbol{C}=\left\{ C_1,C_2,...,C_k \right\}C={C1,C2,...,Ck},定义:
    样本之间的距离(以2-范数/欧式距离为例):dist(xi,xj)=∣∣xi−xj∣∣2=∣xi1−xj1∣2+∣xi2−xj2∣2+...+∣xin−xjn∣2dist\left( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} \right) =||\boldsymbol{x}_i-\boldsymbol{x}_j||_2=\sqrt{|\boldsymbol{x}_{i1}-\boldsymbol{x}_{j1}|^2+|\boldsymbol{x}_{i2}-\boldsymbol{x}_{j2}|^2+...+|\boldsymbol{x}_{in}-\boldsymbol{x}_{jn}|^2}dist(xi,xj)=xixj2=xi1xj12+xi2xj22+...+xinxjn2
    簇的中心点:μ=1∣C∣∑i=1∣C∣xi\mu =\frac{1}{|C|}\sum_{i=1}^{|C|}{x_i}μ=C1i=1Cxi
    簇C内样本间平均距离:avg(C)=2∣C∣(∣C∣−1)∑dist(xi,xj)  ,1⩽i<j⩽∣C∣avg\left( C \right) =\frac{2}{|C|\left( |C|-1 \right)}\sum{dist\left( \boldsymbol{x}_i,\boldsymbol{x}_j \right)}\,\, ,1\leqslant i<j\leqslant |C|avg(C)=C(C1)2dist(xi,xj)1i<jC
    簇C内样本间最远距离:
    diam(C)=max⁡dist(xi,xj),1⩽i<j⩽∣C∣diam\left( C \right) =\max dist\left( \boldsymbol{x}_i\text{,}\boldsymbol{x}_j \right) , 1\leqslant i<j\leqslant |C|diam(C)=maxdist(xixj)1i<jC
    CiC_iCi与簇CiC_iCi最近样本间的距离:dmin⁡(Ci,Cj)=min⁡dist(xi,xj),xi∈Ci,xj∈Cjd_{\min}\left( C_i,C_j \right) =\min dist\left( \boldsymbol{x}_i,\boldsymbol{x}_j \right) , x_i\in C_i,x_j\in C_jdmin(Ci,Cj)=mindist(xi,xj)xiCi,xjCj
    CiC_iCi与簇CiC_iCi中心点之间的距离:dcen(Ci,Cj)=dist(μi,μj)d_{cen}\left( C_i,C_j \right) =dist\left( \boldsymbol{\mu }_i,\boldsymbol{\mu }_j \right)dcen(Ci,Cj)=dist(μi,μj)
    由上述定义得到下表中聚类性能度量评价内部指标:
性能度量内部指标表达式
DB指数(越小越好)DBI=1k∑i=1kmax⁡j≠i(avg(Ci)+avg(Cj)dcen(Ci,Cj))DBI=\frac{1}{k}\sum_{i=1}^k{\underset{j\ne i}{\max}\left( \frac{avg\left( C_i \right) +avg\left( C_j \right)}{d_{cen}\left( C_i,C_j \right)} \right)}DBI=k1i=1kj=imax(dcen(Ci,Cj)avg(Ci)+avg(Cj))
Dunn指数(越大越好)DI=min⁡1⩽i⩽k{min⁡j≠i(dmin⁡(Ci,Cj)max⁡1⩽l⩽k  diam(Cl))}DI=\underset{1\leqslant i\leqslant k}{\min}\left\{ \underset{j\ne i}{\min}\left( \frac{d_{\min}\left( C_i,C_j \right)}{\underset{1\leqslant l\leqslant k}{\max}\,\,diam\left( C_l \right)} \right) \right\}DI=1ikmin{j=imin(1lkmaxdiam(Cl)dmin(Ci,Cj))}

 

9.3 距离度量

dist(⋅,⋅)dist\left( \cdot ,\cdot \right)dist(,) 是一种距离度量(distance measure),需要满足非负性、同一性、对称性、直递性。

  • 有序属性距离度量——闵可夫斯基距离(minkowski distance)
p 取值名称表达式
p⩾1p\geqslant 1p1闵可夫斯基距离distmk(xi,xj)=(∑u=1n∥xiu−xju∥p)1pdist_{mk}\left( \boldsymbol{x}_i,\boldsymbol{x}_j\right)=\left( \sum_{u=1}^n{\|x_{iu}-x_{ju}\|^p} \right) ^{\frac{1}{p}}distmk(xi,xj)=(u=1nxiuxjup)p1
p=1p=1p=1曼哈顿距离distman(xi,xj)=∥∥xi−xj∥∥1=∥xi1−xj1∥+∥xi2−xj2∥+...+∥xin−xjn∥dist_{man}\left( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} \right) =\|\|\boldsymbol{x}_i-\boldsymbol{x}_j\|\|_1=\|x_{i1}-x_{j1}\|+\|x_{i2}-x_{j2}\|+...+\|x_{in}-x_{jn}\|distman(xi,xj)=xixj1=xi1xj1+xi2xj2+...+xinxjn
p=2p=2p=2欧式距离(多维向量常用)disted(xi,xj)=∥∥xi−xj∥∥2=∥xi1−xj1∥2+∥xi2−xj2∥2+...+∥xin−xjn∥2dist_{ed}\left( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} \right) =\|\|\boldsymbol{x}_i-\boldsymbol{x}_j\|\|_2=\sqrt{\|x_{i1}-x_{j1}\|^2+\|x_{i2}-x_{j2}\|^2+...+\|x_{in}-x_{jn}\|^2}disted(xi,xj)=xixj2=xi1xj12+xi2xj22+...+xinxjn2

 

  • 无序属性距离度量——Value Different Metric(VDM)
    属性u上取值为a的样本数量定义为 mu,am_{u,a}mu,a
    在第i个样本簇中,在属性u上取值为a的样本数量定义为 mu,a,im_{u,a,i}mu,a,i
    样本簇数量为k
    在属性u上两个离散值a,b之间的VDM距离为:
    VDMp(a,b)=∑i=1k∣mu,a,imu,a−mu,b,imu,b∣pVDM_p\left( a,b \right) =\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距离,假设样本集有ncn_{c}nc个有序属性,n−ncn-n_{c}nnc个无序属性,则有:
    MinkovDMp(xi,xj)=(∑u=1nc∣xiu−xju∣p+∑u=nc+1nVDMp(xiu−xju))1pMinkovDM_p\left( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} \right) =\left( \sum_{u=1}^{n_c}{|x_{iu}-x_{ju}|^p}+\sum_{u=n_c+1}^n{VDM_p\left( x_{iu}-x_{ju} \right)} \right) ^{\frac{1}{p}}MinkovDMp(xi,xj)=(u=1ncxiuxjup+u=nc+1nVDMp(xiuxju))p1

 

9.4 原型聚类

原型聚类(基于原型的聚类,prototype-based clustering)假设聚类结构可以通过一组原型刻画。原型聚类算法一般先对原型初始化,然后对原型进行更新迭代求解。以下几种为著名的原型聚类算法。

  • k 均值算法(k-means)
    k均值算法的优化目标是最小化样本集的平方误差:
    E=∑i=1k∑xi∈Ci∣∣x−μi∣∣22E=\sum_{i=1}^k{\sum_{x_i\in C_i}{||\boldsymbol{x}-\boldsymbol{\mu }_i||_{2}^{2}}}E=i=1kxiCixμi22
    平方误差EEE描述了簇内样本围绕均值向量μi\boldsymbol{\mu }_iμi的紧密程度,平方误差EEE越小,簇内样本越精密。最小化平方误差EEE需要考察所有可能的簇划分(NP难问题),另一可行的方法是对均值向量初始化,采用贪心策略进行迭代优化,直到满足要求。

 

  • 学习向量量化(Learning Vector Quantization)
    LVQ假设样本带标记,试图找到一组原型向量来刻画聚类结构。
    LVQ算法的样本集为
    D={(x1,y1),(x2,y2),...,(xm,ym)}D=\left\{ \left( \boldsymbol{x}_1,y_1 \right) ,\left( \boldsymbol{x}_2,y_2 \right) ,...,\left( \boldsymbol{x}_m,y_m \right) \right\}D={(x1,y1),(x2,y2),...,(xm,ym)}
    其中 xi=(xi1;xi2;...;xin)\boldsymbol{x}_i=\left( x_{i1};x_{i2};...;x_{in} \right)xi=(xi1;xi2;...;xin)nnn 维向量
    LVQ的优化目标是学得 qqqnnn 维原型向量:
    {p1,p2,...,pq}\left\{ \boldsymbol{p}_1,\boldsymbol{p}_2,...,\boldsymbol{p}_q \right\}{p1,p2,...,pq}
    每个原型向量代表一个聚类簇,簇标记:
    {t1,t2,...,tq}\left\{ t_1,t_2,...,t_q \right\}{t1,t2,...,tq}
    其中 tit_iti ∈y\in \boldsymbol{y}y
     
  • 高斯混合聚类(Mixture-of-Gaussian)
    高斯混合聚类采用概率模型(高斯分布)来表达聚类原型。簇划分由原型对应的后验概率确定。
    高斯分布定义:对 nnn 维样本空间 χ\boldsymbol{\chi }χ 中的随机向量 x\boldsymbol{x}x ,若 x\boldsymbol{x}x 服从高斯分布,其概率密度分布函数为:
    p(x∣μ,Σ)=1(2π)n2∣Σ∣12e−12(x−μ)TΣ−1(x−μ)p\left( \boldsymbol{x}|\boldsymbol{\mu },\boldsymbol{\varSigma } \right) =\frac{1}{\left( 2\pi \right) ^{\frac{n}{2}}|\boldsymbol{\varSigma }|^{\frac{1}{2}}}e^{-\frac{1}{2}\left( \boldsymbol{x}-\boldsymbol{\mu } \right) ^T\boldsymbol{\varSigma }^{-1}\left( \boldsymbol{x}-\boldsymbol{\mu } \right)}p(xμ,Σ)=(2π)2nΣ211e21(xμ)TΣ1(xμ)
    其中 Σ\boldsymbol{\varSigma }Σnnnxnnn 维协方差矩阵,μ\boldsymbol{\mu }μnnn 维均值向量,由 Σ\boldsymbol{\varSigma }Σμ\boldsymbol{\mu }μ 可确定高斯分布。
    引入混合系数 αi\alpha _iαiαi>0且∑i=1kαi=1\alpha _i>0 且 \sum_{i=1}^k{\alpha _i}=1αi>0i=1kαi=1)组成高斯混合成分布 αi⋅p(x∣μ,Σ)\alpha _i\cdot p\left( \boldsymbol{x}|\boldsymbol{\mu },\boldsymbol{\varSigma } \right)αip(xμ,Σ) ,定义高斯混合分布:
    pM(x)=∑i=1kαi⋅p(x∣μ,Σ)p_M\left( \boldsymbol{x} \right) =\sum_{i=1}^k{\alpha _i}\cdot p\left( \boldsymbol{x}|\boldsymbol{\mu },\boldsymbol{\varSigma } \right)pM(x)=i=1kαip(xμ,Σ)

 

9.5 密度聚类

密度聚类(density-based clustering)假设聚类结构可以根据样本分布密度确定,并基于可连接样本不断扩展聚类簇。

  • Density-based spatical Clustering of application with noise (DBSCAN)
    DBSCAN是一种著名的密度聚类算法,使用两个邻域参数(ϵ , MinPts\epsilon \,,\,MinPtsϵ,MinPts)来描述一组领域(neigh-borhood),用以刻画样本分布的紧密程度。有如下定义:
    ϵ \epsilon\,ϵ-邻域:在样本集D中,样本 xix_{i}xi 的邻域包含在样本集D中与样本 xix_{i}xi 距离不大于ϵ \epsilon\,ϵ的样本:
    Nϵ(xi)={xj∈D  ∣  dist(xi,xj)⩽ϵ}N_{\epsilon}\left( \boldsymbol{x}_i \right) =\left\{ \boldsymbol{x}_j\in D\,\, \mid \,\,dist\left( \boldsymbol{x}_i,\boldsymbol{x}_j \right) \leqslant \epsilon \right\}Nϵ(xi)={xjDdist(xi,xj)ϵ}
    MinPtsMinPtsMinPts:若样本 xi\boldsymbol{x}_ixiϵ \epsilon\,ϵ-邻域内样本数量大于MinPtsMinPtsMinPts,则 xi\boldsymbol{x}_ixi 是一个核心对象(core object):
    ∣Nϵ(xi)∣⩾MinPts,  xi为核心对象|N_{\epsilon}\left( \boldsymbol{x}_i \right) | \geqslant MinPts,\ \ \boldsymbol{x}_i 为核心对象Nϵ(xi)MinPts,  xi
    密度直达:xj\boldsymbol{x}_jxjxi\boldsymbol{x}_ixi 邻域内,称 xj\boldsymbol{x}_jxj 可由 xi\boldsymbol{x}_ixi 密度直达。
    密度可达:xj\boldsymbol{x}_jxj 可通过一个或多个中间样本(链式间接直达)对 xi\boldsymbol{x}_ixi 密度直达,称 xj\boldsymbol{x}_jxj 可由 xi\boldsymbol{x}_ixi 密度可达。
    密度相连:样本 xi\boldsymbol{x}_ixixj\boldsymbol{x}_jxj 可通过中间样本 xk\boldsymbol{x}_kxk 密度可达,称 xi\boldsymbol{x}_ixixj\boldsymbol{x}_jxj 密度相连。
    簇:有密度可达关系导出的最大密度相连的样本集合。将所有与 xi\boldsymbol{x}_ixi 密度相连的样本划分为一个簇。

 

9.6 层次聚类

层次聚类(hierarchical clustering)识图在不同层次对数据集进行划分,通过‘自底向上’的聚合策略或者‘自顶向下’的分拆策略来形成树状的聚类结构。

  • AGglomerative NESting
    AGNES采用自底向上的策略,先将每个样本都看成是一个聚类簇,每一步优化中根据距离最近原则将两个距离最近的簇合并,直到达到设定的簇个数。
    每个聚类簇视为样本集合,集合 XXX, ZZZ 之间距离常用*豪斯多夫距离(Hausdorff distance)**计算:
    distH(X,Z)=max⁡(disth(X,Z),disth(Z,X))dist_H\left( X,Z \right) =\max \left( dist_h\left( X,Z \right) ,dist_h\left( Z,X \right) \right)distH(X,Z)=max(disth(X,Z),disth(Z,X))
    disth(X,Z)=max⁡x∈X  min⁡z∈Z∣∣x−z∣∣2  dist_h\left( X,Z \right) =\underset{\boldsymbol{x}\in X}{\max}\,\,\underset{\boldsymbol{z}\in Z}{\min}||\boldsymbol{x}-\boldsymbol{z}||_2\,\,disth(X,Z)=xXmaxzZminxz2
    对于给定的聚类簇 CiC_iCiCjC_jCj 可通过三种方式计算距离,(dist(,)为豪斯多夫距离):
种类表达式
最小距离dmin⁡(Ci,Cj)=min⁡x∈Ci,z∈Cjdist(x,z)d_{\min}\left( C_i,C_j \right) =\underset{\boldsymbol{x}\in C_i,\boldsymbol{z}\in C_j}{\min}dist\left( \boldsymbol{x},\boldsymbol{z} \right)dmin(Ci,Cj)=xCi,zCjmindist(x,z)
最大距离dmax⁡(Ci,Cj)=max⁡x∈Ci,z∈Cjdist(x,z)d_{\max}\left( C_i,C_j \right) =\underset{\boldsymbol{x}\in C_i,\boldsymbol{z}\in C_j}{\max}dist\left( \boldsymbol{x},\boldsymbol{z} \right)dmax(Ci,Cj)=xCi,zCjmaxdist(x,z)
平均距离davg(Ci,Cj)=∑x∈Ci∑z∈Cjdist(x,z)d_{avg}\left( C_i,C_j \right) =\sum_{\boldsymbol{x}\in C_i}{\sum_{\boldsymbol{z}\in C_j}{dist\left( \boldsymbol{x},\boldsymbol{z} \right)}}davg(Ci,Cj)=xCizCjdist(x,z)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值