机器学习09——聚类(聚类性能度量、K均值聚类、层次聚类)

上一章: 机器学习08------集成学习
下一章: 机器学习10------降维与度量学习
机器学习实战项目: 【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备

文章目录

一、聚类任务(无监督学习的核心)

聚类是无监督学习中最核心的任务之一,目标是将无标记样本集划分为若干不相交的"簇"(cluster),以揭示数据内在的分布结构。

(一)形式化描述
  • 给定样本集 D = { x 1 , x 2 , . . . , x m } D = \{x_1, x_2, ..., x_m\} D={x1,x2,...,xm},每个样本 x i x_i xi为n维特征向量;
  • 聚类算法将 D D D划分为 k k k个簇 { C 1 , C 2 , . . . , C k } \{C_1, C_2, ..., C_k\} {C1,C2,...,Ck},满足:
    • 簇间不相交: C l ′ ∩ l ′ ≠ l C l = ∅ C_{l'} \cap_{l' \neq l} C_l = \emptyset Cl′∩l′=lCl=∅;
    • 覆盖所有样本: D = ∪ l = 1 k C l D = \cup_{l=1}^k C_l D=∪l=1kCl;
  • 簇标记向量 λ = { λ 1 ; λ 2 ; . . . ; λ m } \lambda = \{\lambda_1; \lambda_2; ...; \lambda_m\} λ={λ1;λ2;...;λm}表示样本所属簇( λ j ∈ { 1 , 2 , . . . , k } \lambda_j \in \{1, 2, ..., k\} λj∈{1,2,...,k},即 x j ∈ C λ j x_j \in C_{\lambda_j} xj∈Cλj)。

二、聚类性能度量(有效性指标)

性能度量用于评价聚类结果的优劣,核心是"簇内相似度高、簇间相似度低",分为外部指标和内部指标。

(一)外部指标(与参考模型比较)
  • 定义:将聚类结果与"参考模型"(如人工标注的簇划分)比较,通过样本对的匹配情况计算。
  • 关键参数
    • a a a:同簇且参考模型中同簇的样本对数量;
    • b b b:同簇但参考模型中不同簇的样本对数量;
    • c c c:不同簇但参考模型中同簇的样本对数量;
    • d d d:不同簇且参考模型中不同簇的样本对数量。
  • 常用指标
    • Jaccard系数(JC): J C = a a + b + c JC = \frac{a}{a + b + c} JC=a+b+ca;
    • FM指数(FMI): F M I = a a + b ⋅ a a + c FMI = \sqrt{\frac{a}{a + b} \cdot \frac{a}{a + c}} FMI=a+ba⋅a+ca ;
    • Rand指数(RI): R I = 2 ( a + d ) m ( m − 1 ) RI = \frac{2(a + d)}{m(m - 1)} RI=m(m−1)2(a+d)。
(二)内部指标(直接评价聚类结果)
  • 定义:基于聚类结果自身的统计特性(如距离、密度)评价,无需参考模型。
  • 关键参数
    • a v g ( C ) avg(C) avg(C):簇 C C C内样本平均距离;
    • d i a m ( C ) diam(C) diam(C):簇 C C C内样本最大距离;
    • d m i n ( C i , C j ) d_{min}(C_i, C_j) dmin(Ci,Cj):簇 C i C_i Ci与 C j C_j Cj的最近样本距离;
    • d c e n ( C i , C j ) d_{cen}(C_i, C_j) dcen(Ci,Cj):簇 C i C_i Ci与 C j C_j Cj的中心距离。
  • 常用指标
    • DB指数(DBI): D B I = 1 k ∑ i = 1 k m a x j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( μ i , μ j ) ) DBI = \frac{1}{k} \sum_{i=1}^k max_{j \neq i} \left( \frac{avg(C_i) + avg(C_j)}{d_{cen}(\mu_i, \mu_j)} \right) DBI=k1∑i=1kmaxj=i(dcen(μi,μj)avg(Ci)+avg(Cj))(值越小越好);
    • Dunn指数(DI): D I = m i n 1 ≤ i ≤ k { m i n j ≠ i ( d m i n ( C i , C j ) m a x 1 ≤ l ≤ k d i a m ( C l ) ) } DI = min_{1 \leq i \leq k} \left\{ min_{j \neq i} \left( \frac{d_{min}(C_i, C_j)}{max_{1 \leq l \leq k} diam(C_l)} \right) \right\} DI=min1≤i≤k{minj=i(max1≤l≤kdiam(Cl)dmin(Ci,Cj))}(值越大越好)。

三、距离计算(聚类的基础)

距离度量是聚类的核心,需满足非负性、同一性、对称性和直递性,不同属性类型需采用不同度量方式。

(一)常用距离
  • 闵可夫斯基距离 : d i s t ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 / p dist(x_i, x_j) = \left( \sum_{u=1}^n |x_{iu} - x_{ju}|^p \right)^{1/p} dist(xi,xj)=(∑u=1n∣xiu−xju∣p)1/p,其中:
    • p = 2 p=2 p=2为欧氏距离(最常用);
    • p = 1 p=1 p=1为曼哈顿距离。
(二)属性类型与距离度量
  1. 连续属性:直接使用闵可夫斯基距离;
  2. 离散属性
    • 有序属性:可转换为连续值后用闵可夫斯基距离;
    • 无序属性:用VDM距离
      V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ p VDM_p(a, b) = \sum_{i=1}^k \left| \frac{m_{u,a,i}}{m_{u,a}} - \frac{m_{u,b,i}}{m_{u,b}} \right|^p VDMp(a,b)=i=1∑k mu,amu,a,i−mu,bmu,b,i p
      ( m u , a , i m_{u,a,i} mu,a,i为第 i i i簇中属性 u u u取 a a a的样本数, m u , a m_{u,a} mu,a为属性 u u u取 a a a的总样本数);
  3. 混合属性 :结合闵可夫斯基距离和VDM:
    M i n k o v D M p ( x i , x j ) = ( ∑ 连续属性 ∣ x i u − x j u ∣ p + ∑ 无序属性 V D M p ( x i u , x j u ) ) 1 / p MinkovDM_p(x_i, x_j) = \left( \sum_{连续属性} |x_{iu} - x_{ju}|^p + \sum_{无序属性} VDM_p(x_{iu}, x_{ju}) \right)^{1/p} MinkovDMp(xi,xj)=(连续属性∑∣xiu−xju∣p+无序属性∑VDMp(xiu,xju))1/p

四、原型聚类(基于原型的聚类)

原型聚类假设聚类结构可通过"原型"(如中心、概率分布)刻画,通过迭代优化原型实现聚类。

(一)k均值算法(k-means)
  • 核心思想 :最小化簇内平方误差 E = ∑ i = 1 k ∑ x ∈ C i ∥ x − μ i ∥ 2 2 E = \sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|_2^2 E=∑i=1k∑x∈Ci∥x−μi∥22( μ i \mu_i μi为簇 C i C_i Ci的均值向量)。
  • 算法步骤
    1. 随机选择 k k k个样本作为初始均值向量 { μ 1 , μ 2 , . . . , μ k } \{\mu_1, \mu_2, ..., \mu_k\} {μ1,μ2,...,μk};
    2. 迭代:
      • 簇划分:将每个样本划入距离最近的均值向量对应的簇;
      • 更新均值:计算每个簇的新均值向量 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i = \frac{1}{|C_i|} \sum_{x \in C_i} x μi=∣Ci∣1∑x∈Cix;
    3. 终止:均值向量不再更新时停止。
  • 特点 :高效易实现,但对初始中心敏感,适用于凸形分布数据。
  • 模型定义 :混合分布 p M ( x ) = ∑ i = 1 k α i p ( x ∣ μ i , Σ i ) p_M(x) = \sum_{i=1}^k \alpha_i p(x | \mu_i, \Sigma_i) pM(x)=∑i=1kαip(x∣μi,Σi),其中 α i \alpha_i αi为混合系数( ∑ α i = 1 \sum \alpha_i = 1 ∑αi=1), p ( x ∣ μ i , Σ i ) p(x | \mu_i, \Sigma_i) p(x∣μi,Σi)为第 i i i个高斯分布(均值 μ i \mu_i μi,协方差 Σ i \Sigma_i Σi)。
  • 求解方法(EM算法)
    1. 初始化参数 { α i , μ i , Σ i } \{\alpha_i, \mu_i, \Sigma_i\} {αi,μi,Σi};
    2. 迭代(E步→M步):
      • E步:计算样本 x j x_j xj属于第 i i i个成分的后验概率 γ j i = α i p ( x j ∣ μ i , Σ i ) ∑ l = 1 k α l p ( x j ∣ μ l , Σ l ) \gamma_{ji} = \frac{\alpha_i p(x_j | \mu_i, \Sigma_i)}{\sum_{l=1}^k \alpha_l p(x_j | \mu_l, \Sigma_l)} γji=∑l=1kαlp(xj∣μl,Σl)αip(xj∣μi,Σi);
      • M步:更新参数 α i = 1 m ∑ j γ j i \alpha_i = \frac{1}{m} \sum_j \gamma_{ji} αi=m1∑jγji, μ i = ∑ j γ j i x j ∑ j γ j i \mu_i = \frac{\sum_j \gamma_{ji} x_j}{\sum_j \gamma_{ji}} μi=∑jγji∑jγjixj, Σ i = ∑ j γ j i ( x j − μ i ) ( x j − μ i ) T ∑ j γ j i \Sigma_i = \frac{\sum_j \gamma_{ji}(x_j - \mu_i)(x_j - \mu_i)^T}{\sum_j \gamma_{ji}} Σi=∑jγji∑jγji(xj−μi)(xj−μi)T;
    3. 终止:似然函数收敛。
  • 特点:灵活拟合复杂分布,可输出样本属于各簇的概率,但计算复杂度高。

五、层次聚类(树形结构聚类)

层次聚类通过逐层合并或拆分簇,形成树形聚类结构,分为自底向上(聚合)和自顶向下(分拆)策略。

(一)AGNES算法(自底向上聚合)
  • 核心思想 :初始将每个样本视为一个簇,迭代合并距离最近的两个簇,直至达到预设簇数 k k k。
  • 簇距离度量
    • 最小距离: d m i n ( C i , C j ) = m i n x ∈ C i , z ∈ C j d i s t ( x , z ) d_{min}(C_i, C_j) = min_{x \in C_i, z \in C_j} dist(x, z) dmin(Ci,Cj)=minx∈Ci,z∈Cjdist(x,z);
    • 最大距离: d m a x ( C i , C j ) = m a x x ∈ C i , z ∈ C j d i s t ( x , z ) d_{max}(C_i, C_j) = max_{x \in C_i, z \in C_j} dist(x, z) dmax(Ci,Cj)=maxx∈Ci,z∈Cjdist(x,z);
    • 平均距离: d a v g ( C i , C j ) = 1 ∣ C i ∣ ∣ C j ∣ ∑ x ∈ C i ∑ z ∈ C j d i s t ( x , z ) d_{avg}(C_i, C_j) = \frac{1}{|C_i||C_j|} \sum_{x \in C_i} \sum_{z \in C_j} dist(x, z) davg(Ci,Cj)=∣Ci∣∣Cj∣1∑x∈Ci∑z∈Cjdist(x,z)。
  • 特点 :生成层次化簇结构,便于可视化,但计算复杂度高( O ( m 2 l o g m ) O(m^2 log m) O(m2logm)),对噪声敏感。

总结

聚类通过无监督方式揭示数据内在结构,性能可通过外部或内部指标评价。距离计算需根据属性类型选择(如连续属性用欧氏距离,无序属性用VDM)。原型聚类(k均值、高斯混合)高效且适用于大规模数据;层次聚类(AGNES)生成树形结构,适合探索数据层次关系。实际应用中需根据数据分布和任务需求选择算法。

上一章: 机器学习08------集成学习
下一章: 机器学习10------降维与度量学习
机器学习实战项目: 【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备

相关推荐
Billy_Zuo11 小时前
人工智能机器学习——决策树、异常检测、主成分分析(PCA)
人工智能·决策树·机器学习
君名余曰正则14 小时前
机器学习06——支持向量机(SVM核心思想与求解、核函数、软间隔与正则化、支持向量回归、核方法)
人工智能·机器学习·支持向量机
sjr200114 小时前
从huggingface下载模型时有哪些文件?
人工智能·机器学习
moz与京14 小时前
【面试向】热门技术话题(上)
人工智能·物联网·机器学习·面试·web3·区块链·元宇宙
君名余曰正则16 小时前
【竞赛系列】机器学习实操项目08——全球城市计算AI挑战赛(数据可视化分析)
人工智能·机器学习·信息可视化
F_D_Z16 小时前
【PyTorch】单对象分割
人工智能·pytorch·python·深度学习·机器学习
猫天意17 小时前
【CVPR2023】奔跑而非行走:追求更高FLOPS以实现更快神经网络
人工智能·深度学习·神经网络·算法·机器学习·卷积神经网络
AI风老师17 小时前
深度学习入门:打好数学与机器学习基础,迈向AI进阶之路
人工智能·深度学习·机器学习
BFT白芙堂18 小时前
清华大学联合项目 论文解读 | MoTo赋能双臂机器人:实现零样本移动操作
机器学习·机器人·移动机器人·论文解读·具身智能·双臂机器人·cobotmagic