《机器学习》周志华-CH9(聚类)

9.1聚类任务

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为"簇"。

假定样本集 D = x 1 , x 2 , . . . x m D={x_1,x_2,...x_m} D=x1,x2,...xm包含 m m m个无标记样本

每个样本 x i = ( x i 1 , x i 2 , . . . x i n ) x_i=(x_{i1},x_{i2},...x_{in}) xi=(xi1,xi2,...xin)是一个 n n n维向量

聚类将样本集 D D D划分维 k k k个不相交的簇 { C l ∣ l = 1 , 2 , . . k } \{C_l|l=1,2,..k\} {Cl∣l=1,2,..k}

9.2性能度量

亦称聚类"有效性指标"(validity index)

聚类结果与"簇内相似度"高且"簇间相似度"低
性能度量大致两类 { 与"参考模型"比,"外部指标" 直接考虑结果,"内部指标" 性能度量大致两类 \begin{cases} 与"参考模型"比,"外部指标" &\\ 直接考虑结果,"内部指标" & \\ \end{cases} 性能度量大致两类{与"参考模型"比,"外部指标"直接考虑结果,"内部指标"

对数据集 D = { x 1 , x 2 , . . . x m } D=\{x_1,x_2,...x_m\} D={x1,x2,...xm}

聚类给出的簇划分 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck}

参考模型给的簇划分 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C k ∗ } C^*=\{C_1^*,C_2^*,...,C_k^*\} C∗={C1∗,C2∗,...,Ck∗}

同时令 λ \lambda λ与 λ ∗ \lambda^* λ∗分布表示 C C C与 C ∗ C^* C∗对应的簇标记向量

其中, a + b + c + d = C m 2 = m ( m − 1 ) 2 a+b+c+d=C_m^2=\frac{m(m-1)}{2} a+b+c+d=Cm2=2m(m−1)

聚类性能度量外部指标:


9.3距离计算

对函数 d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(⋅,⋅),若它是一个"距离度量"(distance measure),则需满足一些基本性质:

  • 非负性: d i s t ( x i , x j ) ≥ 0 ; dist(x_i,x_j)\geq0; dist(xi,xj)≥0;
  • 同一性: d i s t ( x i , x j ) = 0 ; dist(x_i,x_j)=0; dist(xi,xj)=0;当且仅当 x i = x j ; x_i=x_j; xi=xj;
  • 对称性: d i s t ( x i , x j ) = d i s t ( x j , x i ) ; dist(x_i,x_j)=dist(x_j,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(x_i,x_j)\leq{dist(x_i,x_k)+dist(x_k,x_j)} dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)

给定样本 x i = ( x i 1 ; x i 2 ; . . . ; x i n ) x_i=(x_{i1};x_{i2};...;x_{in}) xi=(xi1;xi2;...;xin)与 x j = ( x j 1 ; x j 2 ; . . . ; x j n ) x_j=(x_{j1};x_{j2};...;x_{jn}) xj=(xj1;xj2;...;xjn),最常用的是"闵可夫斯基距离"(Minkoski distance)
d i s t m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p \begin{equation} dist_{mk}(x_i,x_j)=(\sum_{u=1}^n|x_{iu}-x_{ju}|^p)^{\frac{1}{p}} \tag{9.18} \end{equation} distmk(xi,xj)=(u=1∑n∣xiu−xju∣p)p1(9.18)

对 p ≥ 1 p\geq1 p≥1,式(9.18)满足上面所有基本性质

p = 2 p=2 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 \begin{equation} dist_{ed}(x_i,x_j)=||x_i-x_j||2=\sqrt{\sum{u=1}^{n}|x_{iu}-x_{ju}|^2} \tag{9.19} \end{equation} disted(xi,xj)=∣∣xi−xj∣∣2=u=1∑n∣xiu−xju∣2 (9.19)

p = 1 p=1 p=1时,"闵可夫斯基距离"是曼哈顿距离
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 ∣ \begin{equation} dist_{man}(x_i,x_j)=||x_i-x_j||1=\sum{u=1}^{n}|x_{iu}-x_{ju}| \tag{9.20} \end{equation} distman(xi,xj)=∣∣xi−xj∣∣1=u=1∑n∣xiu−xju∣(9.20)
属性划分 { "连续属性" "离散属性" 属性划分 \begin{cases} "连续属性" &\\ "离散属性" & \\ \end{cases} 属性划分{"连续属性""离散属性"
属性划分 { "有序属性" 1 , 2 , 3 闵可夫斯基距离可用 "无序属性" 飞机,火车,轮胎 闵可夫斯基距离不可用 属性划分 \begin{cases} "有序属性" &1,2,3 &闵可夫斯基距离可用\\ "无序属性" & 飞机,火车,轮胎 &闵可夫斯基距离不可用\\ \end{cases} 属性划分{"有序属性""无序属性"1,2,3飞机,火车,轮胎闵可夫斯基距离可用闵可夫斯基距离不可用

对无需属性采用VDM

令 m u , a m_{u,a} mu,a表示属性 u u u上取值为 a a a的样本数

m u , a , i m_{u,a,i} mu,a,i表示第 i i i个样本簇中在属性 u u u上取值为 a a a的样本数。

属性 u u u上两个离散值 a a a与 b b b之间的VDM距离为:
V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ \begin{equation} VDM_p(a,b)=\sum_{i=1}^k|\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}| \tag{9.21} \end{equation} VDMp(a,b)=i=1∑k∣mu,amu,a,i−mu,bmu,b,i∣(9.21)

将闵可夫斯基距离和VDM结合即可处理混合属性

n c n_c nc个有序属性, n − n c n-n_c n−nc个无序属性,则:
M i n k o v D M p ( x i , x j ) = ( ∑ u = 1 n c ∣ x i , u − x j , u ∣ p + ∑ u = n c + 1 n V D M p ( x i u , x j u ) ) 1 p \begin{equation} MinkovDM_p(x_i,x_j)=(\sum_{u=1}^{n_c}|x_{i,u}-x_{j,u}|^p+\sum_{u=n_c+1}^nVDM_p(x_{iu},x_ju))^{\frac{1}{p}} \tag{9.22} \end{equation} MinkovDMp(xi,xj)=(u=1∑nc∣xi,u−xj,u∣p+u=nc+1∑nVDMp(xiu,xju))p1(9.22)

样本权重不同,"加权距离"

加权闵可夫斯基距离:
d i s t w m k ( x i , x j ) = ( w i ⋅ ∣ x i 1 − x j 1 ∣ p + . . . + w n ⋅ ∣ x i n − x j n ∣ p ) 1 p \begin{equation} dist_{wmk}(x_i,x_j)=(w_i\cdot|x_{i1}-x_{j1}|^p+...+w_n\cdot|x_{in}-x_{jn}|^p)^{\frac{1}{p}} \tag{9.23} \end{equation} distwmk(xi,xj)=(wi⋅∣xi1−xj1∣p+...+wn⋅∣xin−xjn∣p)p1(9.23)

其中,权重 w i ≥ 0 ( i = 1 , 2 , . . . , n ) w_i\geq0(i=1,2,...,n) wi≥0(i=1,2,...,n)表征不同属性的重要性,通常 ∑ i = 1 n w i = 1 \sum_{i=1}^nw_i=1 ∑i=1nwi=1

9.4原型聚类

"基于原型的聚类",通过一组原型刻画。

9.4.1 k均值算法

样本集 D = { x 1 , x 2 , . . . x m } D=\{x_1,x_2,...x_m\} D={x1,x2,...xm},k-means算法针对聚类所得簇划分 C = { C 1 , C 2 , . . . C k } C=\{C_1,C_2,...C_k\} C={C1,C2,...Ck}最小化平方误差
E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − u i ∣ ∣ 2 2 \begin{equation} E=\sum_{i=1}^k\sum_{x\in{C_{i}}}||x-u_i||_2^2 \tag{9.24} \end{equation} E=i=1∑kx∈Ci∑∣∣x−ui∣∣22(9.24)

其中 E E E越小,内部相似度越高, u i = 1 ∣ C i ∣ ∑ x ∈ C i x u_i=\frac{1}{|C_i|}\sum_{x\in{C_i}}x ui=∣Ci∣1∑x∈Cix是簇 C i C_i Ci的均值向量

这是一个NP问题,采用贪心策略,通过迭代优化近似求解

算法

  1. 加入簇数 k = 3 k=3 k=3,随机选 3 3 3个样本做为中心 u 1 , u 2 , u 3 u_1,u_2,u_3 u1,u2,u3
  2. 对每一个样本,考虑与 u 1 , u 2 , u 3 u_1,u_2,u_3 u1,u2,u3距离分出
    C 1 = x 5 , x 6 , . . . C_1={x_5,x_6,...} C1=x5,x6,...
    C 2 = x 1 , x 1 1 , . . . C_2={x_1,x_11,...} C2=x1,x11,...
    C 1 = x 1 8 , x 1 9 , . . . C_1={x_18,x_19,...} C1=x18,x19,...
  3. 对 C 1 , C 2 , C 3 C_1,C_2,C_3 C1,C2,C3分别求新的均值向量 u 1 1 , u 2 2 , u 3 3 u_1^1,u_2^2,u_3^3 u11,u22,u33,不断重复迭代,得到最终划分
9.4.2学习向量化(Learning Vector Quantization,LVQ)

假设样本有类别标记,学习过程利用样本的监督信息来辅助聚类

给定样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\} D={(x1,y1),(x2,y2),...(xm,ym)}

LVQ关键在于如何更新原型向量

对样本 x j x_j xj,若最近的原型向量 P i ∗ P_{i^*} Pi∗与 x j x_j xj类别标记相同,则令 P i ∗ P_{i^*} Pi∗向 x j x_j xj的方向靠拢,此时新原型向量为

类似的,若 P i ∗ P_{i^*} Pi∗与 x j x_j xj的类别标记不同,则更新后的原型向量与 x j x_j xj之间的距离增大为 ( 1 + η ) ⋅ ∣ ∣ P i ∗ − x j ∣ ∣ 2 (1+\eta)\cdot||P_{i^*}-x_j||_2 (1+η)⋅∣∣Pi∗−xj∣∣2,从而更远离 x j x_j xj

学得一组原型向量 { P 1 , P 2 , . . . P q } \{P_1,P_2,...P_q\} {P1,P2,...Pq}后,可实现对样本空间 χ \chi χ的簇划分。任意样本 χ \chi χ,划入最近簇中;

每个 P i ∗ P_{i^*} Pi∗定义了与之相关的区域 R i R_i Ri。区域中样本与 P i P_i Pi距离不大于其他原型向量 P i , P_{i^,} Pi,的距离:
R i = { x ∈ χ ∣ ∣ ∣ x − p i ∣ ∣ 2 ≤ ∣ ∣ x − p i , ∣ ∣ 2 , i ′ ≠ i } \begin{equation} R_i=\{x\in\chi| \quad||x-p_i||2\leq||x-p{i^,}||_2,i^{'}\neq{i}\} \tag{9.27} \end{equation} Ri={x∈χ∣∣∣x−pi∣∣2≤∣∣x−pi,∣∣2,i′=i}(9.27)

形成了对样本空间 χ \chi χ的簇划分 { R 1 , R 2 , . . . R q } \{R_1,R_2,...R_q\} {R1,R2,...Rq}称为"Voronoi剖分"

9.4.3高斯混合聚类

高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型

对 n n n维样本空间 X X X中的随机向量 x x x,若 X X X服从高斯分布,概率密度函数维:

样本生成过程:

根据 α 1 , α 2 , . . . α k \alpha_1,\alpha_2,...\alpha_k α1,α2,...αk定义的先验分布选择高斯混合成分, α i \alpha_i αi为第 i i i个成分概率

根据概率密度进行采样,生成相应的样本

生成训练集 D = { x 1 , x 2 , . . . x m } D=\{x_1,x_2,...x_m\} D={x1,x2,...xm}

令随机变量 z j ∈ { 1 , 2 , . . k } z_j\in\{1,2,..k\} zj∈{1,2,..k}表示生成样本 x j x_j xj的高斯混合成分,其取值未知。显然, 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,...,k) αi(i=1,2,...,k).根据贝叶斯定理, z j z_j zj的后验分布对应于

9.5密度聚类

DBSCAN是基于一组"邻域"参数 ( ξ , M i n P t s ) (\xi,MinPt_s) (ξ,MinPts)来刻画样本分布的紧密程度。给定数据集 D = { x 1 , x 2 . . . x m } D=\{x_1,x_2...x_m\} D={x1,x2...xm}

  • ξ − \xi- ξ−邻域:对 x j ∈ D x_j\in{D} xj∈D,其 ξ \xi ξ邻域包含样本集 D D D中与 x j x_j xj的距离不大于 ξ \xi ξ的样本,即 N ξ ( x j ) = { x i ∈ D ∣ d i s t ( x i , x j ) ≤ ξ } N_{\xi}(x_j)=\{x_i\in{D}|dist(x_i,x_j)\leq\xi\} Nξ(xj)={xi∈D∣dist(xi,xj)≤ξ}
  • 核心对象(core object) : 若 x j x_j xj的 ξ \xi ξ邻域至少包含 M i n P t s MinPt_s MinPts个样本,即 ∣ N ξ ( x j ) ∣ ≥ M i n P t s |N_{\xi}(x_j)|\ge{MinPt_s} ∣Nξ(xj)∣≥MinPts,则 x j x_j xj是一个核心对象
  • 密度直达(directly density-reachable) :若 x j x_j xj位于 x i x_i xi的 ξ \xi ξ邻域中,且 x i x_i xi是核心对象。称 x j x_j xj由 x i x_i xi密度直达。
  • 密度可达(density-reachable) :对 x i x_i xi与 x j x_j xj,若存在样本序列 p 1 , p 2 , . . . , p n , p_1,p_2,...,p_n, p1,p2,...,pn,其中 p 1 = x i , p n = x j p_1=x_i,p_n=x_j p1=xi,pn=xj且 p i + 1 p_{i+1} pi+1由 p i p_i pi密度直达,则称 x j x_j xj由 x i x_i xi密度可达;
  • 密度相连(density-connected) :对 x i x_i xi与 x j x_j xj,若存在 x k x_k xk使得 x i x_i xi与 x j x_j xj均由 x k x_k xk密度可达,则称 x i x_i xi与 x j x_j xj密度相连。

DBSCAN的簇定义为:给定邻域参数 ( ξ , M i n P t s ) (\xi,MinPt_s) (ξ,MinPts),簇 C ⊆ D C\subseteq{D} C⊆D是满足以下性质的非空样本子集:

9.6层次聚类

最小距离:
d m i n ( C i , C j ) = m i n x ∈ C i , z ∈ C j d i s t ( x , z ) \begin{equation} d_{min}(C_i,C_j)=\underset{x\in C_i,z\in C_j}{min}dist(x,z) \tag{9.41} \end{equation} dmin(Ci,Cj)=x∈Ci,z∈Cjmindist(x,z)(9.41)

最大距离:
d m a x ( C i , C j ) = m a x x ∈ C i , z ∈ C j d i s t ( x , z ) \begin{equation} d_{max}(C_i,C_j)=\underset{x\in C_i,z\in C_j}{max}dist(x,z) \tag{9.42} \end{equation} dmax(Ci,Cj)=x∈Ci,z∈Cjmaxdist(x,z)(9.42)

平均距离:
d a v g ( C i , C j ) = 1 ∣ C i ∣ ∣ C j ∣ ∑ x ∈ C i ∑ x ∈ C j d i s t ( x , z ) \begin{equation} d_{avg}(C_i,C_j)=\frac{1}{|C_i||C_j|}\sum_{x\in{C_i}}\sum_{x\in{C_j}}dist(x,z) \tag{9.43} \end{equation} davg(Ci,Cj)=∣Ci∣∣Cj∣1x∈Ci∑x∈Cj∑dist(x,z)(9.43)

相关推荐
FHYAAAX40 分钟前
【机器学习】任务六:分类算法(支持向量机(SVM)在线性可分与不可分数据中的应用与可视化分析)
机器学习·支持向量机·分类·svm
正义的彬彬侠1 小时前
矩阵的特征值和特征向量
人工智能·线性代数·机器学习·矩阵
赋创小助手1 小时前
下一代性能怪兽RTX 5090最新规格更新与Blackwell架构解析
人工智能·科技·深度学习·机器学习·架构
技术无疆1 小时前
【Python】Daphne:Django 异步服务的桥梁
开发语言·人工智能·后端·python·机器学习·数据挖掘·django
tt5555555555551 小时前
机器学习学习笔记-20240927
笔记·学习·机器学习·计算机视觉
Tunny_yyy1 小时前
李宏毅机器学习2022-HW9--Explainable AI
人工智能·机器学习
深度学习实战训练营4 小时前
FiBiNET模型实现推荐算法
算法·机器学习·推荐算法
拜刊物苏哲5 小时前
【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版
机器学习·分类·回归·k近邻算法
@技术无疆5 小时前
Python 机器学习:预测国庆黄金周的消费趋势
开发语言·人工智能·python·深度学习·神经网络·机器学习·小程序
计算机编程-吉哥5 小时前
计算机毕业设计 基于Python高校岗位招聘和分析平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
大数据·python·机器学习·django·毕业设计·毕业论文·计算机毕业设计选题