模式识别与机器学习课程笔记(7):聚类分析

模式识别与机器学习课程笔记(7):聚类分析

文章目录

引言

聚类分析是无监督学习的核心技术之一,其本质是在无类别标签的情况下,通过样本自身的特征相似性,将数据自动划分为若干个“簇”(Cluster)——同一簇内的样本高度相似,不同簇间的样本差异显著。与监督学习(如分类)不同,聚类无需预先知道数据的类别分布,仅依赖数据的内在结构即可完成分组。

聚类分析的应用场景极为广泛,例如:

  • 电商平台的用户画像分组(如“高频消费用户”“折扣敏感用户”);
  • 图像分割(将图像像素按颜色、纹理聚类为不同区域);
  • 文本主题挖掘(将新闻按“科技”“财经”“娱乐”等主题聚类);
  • 生物信息学(将基因序列按功能相似性聚类)。

本文将从聚类的基础理论出发,依次讲解“相似性测度”(判断样本相似的标准)、“类的定义与类间距离”(簇的数学描述)、“聚类准则”(衡量聚类效果的目标)、经典“聚类算法”(具体实现方法),并深入介绍概率型聚类的代表——“混合高斯模型”及其参数估计工具“期望最大化方法”,构建完整的聚类分析知识体系。

一、相似性测度

相似性测度是聚类的“基石”,用于量化两个样本之间的相似或相异程度。通常分为两类:距离测度(衡量相异度,值越小越相似)和相似系数(衡量相似度,值越大越相似),选择需结合数据类型(连续型、离散型、布尔型等)。

1.1 距离测度(适用于连续型数据)

距离测度需满足数学上的“距离公理”:非负性( d ( x , y ) ≥ 0 d(x,y) \geq 0 d(x,y)0)、对称性( d ( x , y ) = d ( y , x ) d(x,y)=d(y,x) d(x,y)=d(y,x))、三角不等式( d ( x , y ) ≤ d ( x , z ) + d ( z , y ) d(x,y) \leq d(x,z)+d(z,y) d(x,y)d(x,z)+d(z,y))。常用距离如下:

1.1.1 欧氏距离(Euclidean Distance)

最常用的距离,衡量样本在特征空间中的“直线距离”,公式为:
d i j = ∑ k = 1 d ( x i k − x j k ) 2 d_{ij} = \sqrt{\sum_{k=1}^d (x_{ik} - x_{jk})^2} dij=k=1d(xikxjk)2

  • 符号说明: x i = ( x i 1 , x i 2 , . . . , x i d ) x_i = (x_{i1}, x_{i2}, ..., x_{id}) xi=(xi1,xi2,...,xid) x j x_j xj d d d维特征空间中的两个样本, x i k x_{ik} xik表示样本 i i i的第 k k k个特征;
  • 特点:对特征尺度敏感(如“身高(cm)”和“体重(kg)”因单位不同,会导致身高对距离的贡献被放大),使用前需对特征做标准化(如Z-score标准化);
  • 适用场景:特征尺度一致或已标准化的连续型数据(如图像像素值、传感器数据)。
1.1.2 曼哈顿距离(Manhattan Distance)

又称“城市街区距离”,衡量样本在特征空间中的“折线距离”(仅沿坐标轴移动),公式为:
d i j = ∑ k = 1 d ∣ x i k − x j k ∣ d_{ij} = \sum_{k=1}^d |x_{ik} - x_{jk}| dij=k=1dxikxjk

  • 特点:对异常值的鲁棒性优于欧氏距离(因避免了平方项放大异常值的影响);
  • 适用场景:需降低异常值干扰的场景(如用户行为数据中的极端值)。
1.1.3 切比雪夫距离(Chebyshev Distance)

衡量样本在特征空间中“各维度差值的最大值”,公式为:
d i j = max ⁡ k = 1.. d ∣ x i k − x j k ∣ d_{ij} = \max_{k=1..d} |x_{ik} - x_{jk}| dij=k=1..dmaxxikxjk

  • 特点:关注样本差异最大的那个特征,忽略其他特征的微小差异;
  • 适用场景:需优先考虑关键特征差异的场景(如产品质量检测中,某一项指标不达标即判定为不同类)。
1.1.4 马氏距离(Mahalanobis Distance)

考虑特征间相关性的距离,可消除特征尺度和相关性的影响,公式为:
d i j = ( x i − x j ) T Σ − 1 ( x i − x j ) d_{ij} = \sqrt{(x_i - x_j)^T \Sigma^{-1} (x_i - x_j)} dij=(xixj)TΣ1(xixj)

  • 符号说明: Σ \Sigma Σ是样本集的协方差矩阵( d × d d \times d d×d维), Σ − 1 \Sigma^{-1} Σ1是其逆矩阵;
  • 特点:无需手动标准化,自动消除特征相关性(如“身高”和“体重”的正相关);
  • 适用场景:特征间存在明显相关性的数据(如气象数据中的温度与湿度)。

1.2 相似系数(适用于离散型/布尔型数据)

相似系数取值范围通常为 [ − 1 , 1 ] [-1,1] [1,1] [ 0 , 1 ] [0,1] [0,1],值越大表示样本越相似。常用系数如下:

1.2.1 余弦相似性(Cosine Similarity)

衡量两个样本向量的“方向一致性”,而非大小,公式为:
s i j = x i T x j ∥ x i ∥ ⋅ ∥ x j ∥ = ∑ k = 1 d x i k x j k ∑ k = 1 d x i k 2 ⋅ ∑ k = 1 d x j k 2 s_{ij} = \frac{x_i^T x_j}{\|x_i\| \cdot \|x_j\|} = \frac{\sum_{k=1}^d x_{ik} x_{jk}}{\sqrt{\sum_{k=1}^d x_{ik}^2} \cdot \sqrt{\sum_{k=1}^d x_{jk}^2}} sij=xixjxiTxj=k=1dxik2 k=1dxjk2 k=1dxikxjk

  • 特点:对向量长度不敏感(如文本数据中,“词频”缩放后方向不变,余弦值仍相同);
  • 适用场景:文本分类(如TF-IDF向量)、推荐系统(如用户偏好向量)。
1.2.2 Jaccard相似系数(Jaccard Similarity)

适用于布尔型数据(特征取值为0或1,0表示“无”,1表示“有”),公式为:
s i j = a a + b + c s_{ij} = \frac{a}{a + b + c} sij=a+b+ca

  • 符号说明: a a a x i x_i xi x j x_j xj均为1的特征数, b b b x i x_i xi为1、 x j x_j xj为0的特征数, c c c x i x_i xi为0、 x j x_j xj为1的特征数;
  • 特点:忽略“均为0”的特征(避免无意义特征干扰,如文本中均不包含的生僻词);
  • 适用场景:用户兴趣标签(如“喜欢电影/不喜欢”)、商品属性匹配(如“防水/不防水”)。

二、类的定义与类间距离

“类”(簇)是聚类的基本单元,需先明确其数学定义,再定义“类间距离”(衡量两个簇的差异程度)——类间距离是层次聚类等算法的核心计算依据。

2.1 类的定义

从数学角度,类 G G G是样本集 X X X的一个子集( G ⊆ X G \subseteq X GX),需满足“内部相似性高、外部相似性低”。常用的类特征描述如下:

  • 类的中心(Centroid):类内所有样本的均值向量,即 μ G = 1 n G ∑ x ∈ G x \mu_G = \frac{1}{n_G} \sum_{x \in G} x μG=nG1xGx,其中 n G n_G nG是类 G G G的样本数(适用于连续型数据);
  • 类的直径(Diameter):类内任意两个样本的最大距离,即 D G = max ⁡ x i , x j ∈ G d ( x i , x j ) D_G = \max_{x_i, x_j \in G} d(x_i, x_j) DG=maxxi,xjGd(xi,xj),反映类的分散程度;
  • 类的协方差矩阵 Σ G = 1 n G − 1 ∑ x ∈ G ( x − μ G ) ( x − μ G ) T \Sigma_G = \frac{1}{n_G - 1} \sum_{x \in G} (x - \mu_G)(x - \mu_G)^T ΣG=nG11xG(xμG)(xμG)T,反映类内特征的相关性和分散方向。

2.2 类间距离

类间距离的计算需基于“样本距离”,但需定义“如何用样本距离代表类距离”。常用的类间距离方法如下(设类 G 1 G_1 G1 n 1 n_1 n1个样本,类 G 2 G_2 G2 n 2 n_2 n2个样本):

2.2.1 最短距离法(Single Linkage)

取两个类中最相似样本的距离作为类间距离,公式为:
d ( G 1 , G 2 ) = min ⁡ x i ∈ G 1 , x j ∈ G 2 d ( x i , x j ) d(G_1, G_2) = \min_{x_i \in G_1, x_j \in G_2} d(x_i, x_j) d(G1,G2)=xiG1,xjG2mind(xi,xj)

  • 特点:易形成“链状簇”(两个远距离簇可能因边缘样本相似而合并),对噪声敏感;
  • 适用场景:需发现细长形状簇的场景(如道路图像分割)。
2.2.2 最长距离法(Complete Linkage)

取两个类中最不相似样本的距离作为类间距离,公式为:
d ( G 1 , G 2 ) = max ⁡ x i ∈ G 1 , x j ∈ G 2 d ( x i , x j ) d(G_1, G_2) = \max_{x_i \in G_1, x_j \in G_2} d(x_i, x_j) d(G1,G2)=xiG1,xjG2maxd(xi,xj)

  • 特点:簇的紧凑性好(避免链状结构),但对异常值敏感;
  • 适用场景:需簇内样本高度集中的场景(如用户精准分组)。
2.2.3 重心法(Centroid Linkage)

取两个类的中心之间的距离作为类间距离,公式为:
d ( G 1 , G 2 ) = d ( μ G 1 , μ G 2 ) d(G_1, G_2) = d(\mu_{G_1}, \mu_{G_2}) d(G1,G2)=d(μG1,μG2)

  • 特点:计算简单,对异常值鲁棒性优于最短/最长距离法;
  • 适用场景:类中心可明确计算的连续型数据(如传感器监测数据)。
2.2.4 平均距离法(Average Linkage)

取两个类中所有样本对距离的平均值作为类间距离,公式为:
d ( G 1 , G 2 ) = 1 n 1 n 2 ∑ x i ∈ G 1 ∑ x j ∈ G 2 d ( x i , x j ) d(G_1, G_2) = \frac{1}{n_1 n_2} \sum_{x_i \in G_1} \sum_{x_j \in G_2} d(x_i, x_j) d(G1,G2)=n1n21xiG1xjG2d(xi,xj)

  • 特点:综合考虑类内所有样本,结果稳定,是层次聚类中最常用的方法;
  • 适用场景:大多数通用聚类场景,平衡鲁棒性和紧凑性。

三、聚类准则

聚类准则是衡量“聚类结果好坏”的量化标准,本质是定义一个“目标函数”——聚类算法的核心是通过调整簇的划分,使目标函数达到最优(最大或最小)。常用的聚类准则分为“基于相似度的准则”和“基于概率密度的准则”两类。

3.1 基于相似度的准则(适用于确定性聚类)

这类准则通过“类内相似度”和“类间相似度”的组合来评价聚类效果,核心是“最小化类内差异、最大化类间差异”。

3.1.1 误差平方和准则(SSE,Sum of Squared Errors)

又称“组内平方和”,衡量类内样本到类中心的距离平方和,目标是最小化SSE,公式为:
J = ∑ k = 1 K ∑ x ∈ G k ∥ x − μ k ∥ 2 J = \sum_{k=1}^K \sum_{x \in G_k} \|x - \mu_k\|^2 J=k=1KxGkxμk2

  • 符号说明: K K K是聚类个数, G k G_k Gk是第 k k k个簇, μ k \mu_k μk G k G_k Gk的中心;
  • 意义:SSE越小,说明簇内样本越集中,聚类效果越好;
  • 适用场景:K-means等划分式聚类算法(K-means的目标函数就是最小化SSE)。
3.1.2 类间分离度准则

衡量不同簇之间的差异,目标是最大化类间分离度。常用的类间分离度为“类间平方和”(SSB,Sum of Squared Between-clusters),公式为:
S S B = ∑ k = 1 K n k ∥ μ k − μ ∥ 2 SSB = \sum_{k=1}^K n_k \|\mu_k - \mu\|^2 SSB=k=1Knkμkμ2

  • 符号说明: n k n_k nk是第 k k k个簇的样本数, μ \mu μ是所有样本的全局中心;
  • 意义:SSB越大,说明簇间差异越显著,聚类效果越好;
  • 扩展:常用“轮廓系数(Silhouette Coefficient)”综合SSE和SSB,取值范围 [ − 1 , 1 ] [-1,1] [1,1],越接近1表示聚类效果越好。

3.2 基于概率密度的准则(适用于概率型聚类)

这类准则假设数据服从某种概率分布(如混合高斯分布),通过“数据的似然函数”来评价聚类效果,目标是最大化似然函数(即让数据在当前分布下出现的概率最大)。

以混合高斯模型为例,设数据 X = { x 1 , x 2 , . . . , x N } X = \{x_1, x_2, ..., x_N\} X={x1,x2,...,xN}服从 K K K个高斯分布的混合,其对数似然函数为:
L ( θ ) = ∑ i = 1 N ln ⁡ ( ∑ k = 1 K π k N ( x i ; μ k , Σ k ) ) \mathcal{L}(\theta) = \sum_{i=1}^N \ln \left( \sum_{k=1}^K \pi_k \mathcal{N}(x_i; \mu_k, \Sigma_k) \right) L(θ)=i=1Nln(k=1KπkN(xi;μk,Σk))

  • 符号说明: θ = { π 1 , . . . , π K ; μ 1 , . . . , μ K ; Σ 1 , . . . , Σ K } \theta = \{\pi_1, ..., \pi_K; \mu_1, ..., \mu_K; \Sigma_1, ..., \Sigma_K\} θ={π1,...,πK;μ1,...,μK;Σ1,...,ΣK}是模型参数( π k \pi_k πk是第 k k k个高斯分量的权重, N ( x ; μ k , Σ k ) \mathcal{N}(x; \mu_k, \Sigma_k) N(x;μk,Σk)是高斯概率密度函数);
  • 意义: L ( θ ) \mathcal{L}(\theta) L(θ)越大,说明模型参数 θ \theta θ越符合数据的真实分布,聚类(每个高斯分量对应一个簇)效果越好;
  • 适用场景:混合高斯模型(GMM)等概率型聚类算法。

四、聚类算法

根据聚类思路的不同,经典聚类算法可分为划分式聚类层次聚类密度聚类网格聚类四类,各类算法的核心思想、步骤和适用场景差异显著。

4.1 划分式聚类:K-means算法

K-means是最经典的划分式聚类算法,核心是“预先指定聚类个数 K K K,通过迭代更新簇中心,最小化SSE”。

4.1.1 基本思想
  1. 随机选择 K K K个样本作为初始簇中心;
  2. 计算每个样本到各簇中心的距离,将样本分配到距离最近的簇;
  3. 重新计算每个簇的中心(样本均值);
  4. 重复步骤2-3,直到簇中心不再变化或达到迭代次数上限。
4.1.2 算法步骤(数学描述)

设样本集 X = { x 1 , . . . , x N } X = \{x_1, ..., x_N\} X={x1,...,xN},聚类个数 K K K,具体步骤:

  1. 初始化:随机选择 K K K个中心 μ 1 ( 0 ) , . . . , μ K ( 0 ) \mu_1^{(0)}, ..., \mu_K^{(0)} μ1(0),...,μK(0)(上标表示迭代次数,初始为0);
  2. 分配样本(E步思想):对每个样本 x i x_i xi,计算距离 d ( x i , μ k ( t ) ) d(x_i, \mu_k^{(t)}) d(xi,μk(t)),将 x i x_i xi分配到簇 G k ( t ) G_k^{(t)} Gk(t),满足:
    G k ( t ) = { x i ∣ d ( x i , μ k ( t ) ) ≤ d ( x i , μ j ( t ) ) , ∀ j = 1.. K } G_k^{(t)} = \{x_i \mid d(x_i, \mu_k^{(t)}) \leq d(x_i, \mu_j^{(t)}), \forall j=1..K\} Gk(t)={xid(xi,μk(t))d(xi,μj(t)),j=1..K}
  3. 更新中心(M步思想):对每个簇 G k ( t ) G_k^{(t)} Gk(t),重新计算中心 μ k ( t + 1 ) \mu_k^{(t+1)} μk(t+1)
    μ k ( t + 1 ) = 1 n k ( t ) ∑ x i ∈ G k ( t ) x i \mu_k^{(t+1)} = \frac{1}{n_k^{(t)}} \sum_{x_i \in G_k^{(t)}} x_i μk(t+1)=nk(t)1xiGk(t)xi
    其中 n k ( t ) n_k^{(t)} nk(t) G k ( t ) G_k^{(t)} Gk(t)的样本数;
  4. 收敛判断:若 max ⁡ k ∥ μ k ( t + 1 ) − μ k ( t ) ∥ < ϵ \max_{k} \|\mu_k^{(t+1)} - \mu_k^{(t)}\| < \epsilon maxkμk(t+1)μk(t)<ϵ ϵ \epsilon ϵ为预设阈值),停止迭代;否则 t = t + 1 t = t+1 t=t+1,返回步骤2。
4.1.3 优缺点与改进
  • 优点:计算速度快、复杂度低(时间复杂度 O ( N K d T ) O(N K d T) O(NKdT) T T T为迭代次数)、适合大规模数据;
  • 缺点:需预先指定 K K K、对初始中心敏感(易陷入局部最优)、对异常值敏感、仅适用于球形簇;
  • 改进:
    • K-means++:优化初始中心选择(先随机选1个中心,后续中心优先选择距离已选中心远的样本);
    • K-medoids(K-中心点):用簇内样本替代均值作为中心,提高对异常值的鲁棒性。

4.2 层次聚类:凝聚式聚类

层次聚类无需预先指定 K K K,通过“自下而上合并簇”(凝聚式)或“自上而下分裂簇”(分裂式)构建聚类层次树( dendrogram),其中凝聚式聚类更常用。

4.2.1 基本思想(凝聚式)
  1. 初始时每个样本为一个独立的簇(共 N N N个簇);
  2. 计算所有簇对的类间距离,合并距离最近的两个簇;
  3. 重复步骤2,直到所有样本合并为一个簇;
  4. 根据聚类层次树,选择合适的 K K K(如通过轮廓系数),截取树的某一层作为最终聚类结果。
4.2.2 优缺点
  • 优点:无需指定 K K K、可直观展示聚类层次、适合小样本数据;
  • 缺点:计算复杂度高(时间复杂度 O ( N 3 ) O(N^3) O(N3))、不适合大规模数据、一旦合并/分裂无法回溯。

4.3 密度聚类:DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于密度的聚类算法,核心是“将密度足够高的区域划分为簇,同时识别噪声(低密度区域的样本)”,可发现任意形状的簇。

4.3.1 核心概念
  • ε-邻域:以样本 x x x为中心,半径为 ϵ \epsilon ϵ的区域,包含的样本数记为 N ϵ ( x ) N_{\epsilon}(x) Nϵ(x)
  • 核心点:若 N ϵ ( x ) ≥ MinPts N_{\epsilon}(x) \geq \text{MinPts} Nϵ(x)MinPts(预设最小样本数),则 x x x为核心点;
  • 边界点:在核心点的ε-邻域内,但自身不是核心点的样本;
  • 噪声点:既不是核心点也不是边界点的样本。
4.3.2 基本思想
  1. 遍历所有样本,找到所有核心点;
  2. 对每个未分配的核心点,以其为起点,递归合并所有密度可达的样本(即通过核心点连接的样本),形成一个簇;
  3. 边界点分配给其所属的核心点簇;
  4. 剩余未分配的样本为噪声点。
4.3.3 优缺点
  • 优点:无需指定 K K K、可发现任意形状的簇、能识别噪声;
  • 缺点:对参数 ϵ \epsilon ϵ MinPts \text{MinPts} MinPts敏感(需通过领域知识或手肘法选择)、高维数据中密度计算不准确(需先降维)。

五、混合高斯模型(GMM)

混合高斯模型(Gaussian Mixture Model,GMM)是概率型聚类的代表,其本质是用 K K K个高斯分布的线性组合来拟合数据的概率分布——每个高斯分布对应一个簇,样本属于某个簇的概率由该高斯分量的权重和密度共同决定(软聚类,区别于K-means的硬聚类)。

5.1 模型定义

设样本集 X = { x 1 , x 2 , . . . , x N } X = \{x_1, x_2, ..., x_N\} X={x1,x2,...,xN}(每个 x i ∈ R d x_i \in \mathbb{R}^d xiRd),GMM假设每个样本 x i x_i xi的生成过程如下:

  1. K K K个高斯分量中随机选择一个,选择第 k k k个分量的概率为 π k \pi_k πk(满足 ∑ k = 1 K π k = 1 \sum_{k=1}^K \pi_k = 1 k=1Kπk=1 π k ≥ 0 \pi_k \geq 0 πk0);
  2. 从第 k k k个高斯分布 N ( x ; μ k , Σ k ) \mathcal{N}(x; \mu_k, \Sigma_k) N(x;μk,Σk)中生成样本 x i x_i xi,其中 μ k \mu_k μk是均值向量( d d d维), Σ k \Sigma_k Σk是协方差矩阵( d × d d \times d d×d维,半正定)。

因此,GMM的概率密度函数为 K K K个高斯密度的加权和:
p ( x ∣ θ ) = ∑ k = 1 K π k ⋅ N ( x ; μ k , Σ k ) p(x \mid \theta) = \sum_{k=1}^K \pi_k \cdot \mathcal{N}(x; \mu_k, \Sigma_k) p(xθ)=k=1KπkN(x;μk,Σk)
其中 θ = { π 1 , . . . , π K ; μ 1 , . . . , μ K ; Σ 1 , . . . , Σ K } \theta = \{\pi_1, ..., \pi_K; \mu_1, ..., \mu_K; \Sigma_1, ..., \Sigma_K\} θ={π1,...,πK;μ1,...,μK;Σ1,...,ΣK}是GMM的所有参数。

5.2 GMM与K-means的区别

GMM是K-means的概率扩展,二者核心区别如下:

对比维度K-meansGMM
聚类类型硬聚类(样本属于唯一簇)软聚类(样本属于每个簇的概率已知)
模型假设簇是球形、等方差的(基于距离)簇可是任意椭圆形状(基于协方差矩阵)
输出结果簇分配标签簇概率分布 + 模型参数
鲁棒性对异常值敏感对异常值鲁棒性更强(概率分配可降低异常值影响)

5.3 簇的判定

GMM训练完成后,对新样本 x x x,通过“最大后验概率”判定其所属簇:
k ^ = arg ⁡ max ⁡ k = 1.. K p ( k ∣ x , θ ) \hat{k} = \arg\max_{k=1..K} p(k \mid x, \theta) k^=argk=1..Kmaxp(kx,θ)
其中 p ( k ∣ x , θ ) p(k \mid x, \theta) p(kx,θ)是样本 x x x属于第 k k k个簇的后验概率,由贝叶斯公式推导得:
p ( k ∣ x , θ ) = π k ⋅ N ( x ; μ k , Σ k ) ∑ j = 1 K π j ⋅ N ( x ; μ j , Σ j ) p(k \mid x, \theta) = \frac{\pi_k \cdot \mathcal{N}(x; \mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \cdot \mathcal{N}(x; \mu_j, \Sigma_j)} p(kx,θ)=j=1KπjN(x;μj,Σj)πkN(x;μk,Σk)
该后验概率也称为“责任(Responsibility)”,表示第 k k k个高斯分量对生成样本 x x x的贡献程度。

六、期望最大化方法(EM)

GMM的参数 θ \theta θ无法通过解析法直接求解(因似然函数中存在“隐变量”——样本属于哪个高斯分量未知),而期望最大化方法(Expectation-Maximization,EM) 是解决“含隐变量的参数估计问题”的通用算法,通过“迭代求期望(E步)和最大化似然(M步)”逐步逼近最优参数。

6.1 EM算法的核心思想

EM算法针对含隐变量的模型,通过“交替执行两步”优化似然函数:

  1. E步(Expectation Step):固定当前模型参数 θ ( t ) \theta^{(t)} θ(t),计算隐变量的后验概率(期望),即“在已知数据和当前参数下,隐变量的可能取值分布”;
  2. M步(Maximization Step):固定E步得到的隐变量后验概率,最大化似然函数关于参数 θ \theta θ的期望,更新参数为 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)
  3. 重复E步和M步,直到似然函数收敛(参数变化小于阈值),此时得到最优参数 θ ^ \hat{\theta} θ^

6.2 基于EM的GMM参数估计

以GMM为例,详细推导EM算法的具体步骤:

6.2.1 定义隐变量

设隐变量 z i = ( z i 1 , . . . , z i K ) z_i = (z_{i1}, ..., z_{iK}) zi=(zi1,...,ziK),其中 z i k = 1 z_{ik} = 1 zik=1表示样本 x i x_i xi来自第 k k k个高斯分量, z i k = 0 z_{ik} = 0 zik=0表示否则(满足 ∑ k = 1 K z i k = 1 \sum_{k=1}^K z_{ik} = 1 k=1Kzik=1)。此时,GMM的完整似然函数(含隐变量)为:
p ( X , Z ∣ θ ) = ∏ i = 1 N ∏ k = 1 K ( π k N ( x i ; μ k , Σ k ) ) z i k p(X, Z \mid \theta) = \prod_{i=1}^N \prod_{k=1}^K \left( \pi_k \mathcal{N}(x_i; \mu_k, \Sigma_k) \right)^{z_{ik}} p(X,Zθ)=i=1Nk=1K(πkN(xi;μk,Σk))zik
其中 Z = { z 1 , . . . , z N } Z = \{z_1, ..., z_N\} Z={z1,...,zN}是所有隐变量的集合。

6.2.2 E步:计算隐变量的后验概率(责任)

固定当前参数 θ ( t ) = { π k ( t ) , μ k ( t ) , Σ k ( t ) } \theta^{(t)} = \{\pi_k^{(t)}, \mu_k^{(t)}, \Sigma_k^{(t)}\} θ(t)={πk(t),μk(t),Σk(t)},计算第 i i i个样本属于第 k k k个分量的后验概率(责任) γ ( t ) ( z i k ) \gamma^{(t)}(z_{ik}) γ(t)(zik)
γ ( t ) ( z i k ) = p ( z i k = 1 ∣ x i , θ ( t ) ) = π k ( t ) N ( x i ; μ k ( t ) , Σ k ( t ) ) ∑ j = 1 K π j ( t ) N ( x i ; μ j ( t ) , Σ j ( t ) ) \gamma^{(t)}(z_{ik}) = p(z_{ik}=1 \mid x_i, \theta^{(t)}) = \frac{\pi_k^{(t)} \mathcal{N}(x_i; \mu_k^{(t)}, \Sigma_k^{(t)})}{\sum_{j=1}^K \pi_j^{(t)} \mathcal{N}(x_i; \mu_j^{(t)}, \Sigma_j^{(t)})} γ(t)(zik)=p(zik=1xi,θ(t))=j=1Kπj(t)N(xi;μj(t),Σj(t))πk(t)N(xi;μk(t),Σk(t))
γ ( t ) ( z i k ) \gamma^{(t)}(z_{ik}) γ(t)(zik)的物理意义:在当前参数下,样本 x i x_i xi由第 k k k个高斯分量生成的概率。

6.2.3 M步:最大化似然期望,更新参数

固定E步得到的 γ ( t ) ( z i k ) \gamma^{(t)}(z_{ik}) γ(t)(zik),最大化“完整似然函数的期望”(即 E Z ∣ X , θ ( t ) [ ln ⁡ p ( X , Z ∣ θ ) ] \mathbb{E}_{Z \mid X, \theta^{(t)}} [\ln p(X, Z \mid \theta)] EZX,θ(t)[lnp(X,Zθ)]),推导得到新参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)

  1. 更新权重 π k ( t + 1 ) \pi_k^{(t+1)} πk(t+1)
    π k ( t + 1 ) = 1 N ∑ i = 1 N γ ( t ) ( z i k ) \pi_k^{(t+1)} = \frac{1}{N} \sum_{i=1}^N \gamma^{(t)}(z_{ik}) πk(t+1)=N1i=1Nγ(t)(zik)
    意义:第 k k k个分量的权重等于所有样本对该分量的平均责任。

  2. 更新均值 μ k ( t + 1 ) \mu_k^{(t+1)} μk(t+1)
    μ k ( t + 1 ) = ∑ i = 1 N γ ( t ) ( z i k ) x i ∑ i = 1 N γ ( t ) ( z i k ) \mu_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma^{(t)}(z_{ik}) x_i}{\sum_{i=1}^N \gamma^{(t)}(z_{ik})} μk(t+1)=i=1Nγ(t)(zik)i=1Nγ(t)(zik)xi
    意义:第 k k k个分量的均值是所有样本的加权平均,权重为样本对该分量的责任。

  3. 更新协方差矩阵 Σ k ( t + 1 ) \Sigma_k^{(t+1)} Σk(t+1)
    Σ k ( t + 1 ) = ∑ i = 1 N γ ( t ) ( z i k ) ( x i − μ k ( t + 1 ) ) ( x i − μ k ( t + 1 ) ) T ∑ i = 1 N γ ( t ) ( z i k ) \Sigma_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma^{(t)}(z_{ik}) (x_i - \mu_k^{(t+1)})(x_i - \mu_k^{(t+1)})^T}{\sum_{i=1}^N \gamma^{(t)}(z_{ik})} Σk(t+1)=i=1Nγ(t)(zik)i=1Nγ(t)(zik)(xiμk(t+1))(xiμk(t+1))T
    意义:第 k k k个分量的协方差是样本偏离新均值的加权方差,权重为责任。

6.2.4 收敛性说明

EM算法的似然函数 L ( θ ) \mathcal{L}(\theta) L(θ)单调不减的(即 L ( θ ( t + 1 ) ) ≥ L ( θ ( t ) ) \mathcal{L}(\theta^{(t+1)}) \geq \mathcal{L}(\theta^{(t)}) L(θ(t+1))L(θ(t))),因此迭代过程中似然函数会逐步上升,最终收敛到一个局部最优值(需多次初始化参数以避免陷入较差的局部最优)。

6.3 EM算法的适用场景

EM算法不仅适用于GMM,还可用于其他含隐变量的模型,例如:

  • 隐马尔可夫模型(HMM)的参数估计;
  • 缺失数据的填补(隐变量为缺失值);
  • 混合分布模型(如混合泊松模型、混合指数模型)的参数估计。

总结

本文系统梳理了聚类分析的核心知识,从基础到进阶形成完整链条:

  1. 相似性测度是基础,需根据数据类型选择距离或相似系数(如连续型用欧氏距离,文本用余弦相似性);
  2. 类的定义与类间距离是簇的数学描述,类间距离决定层次聚类的合并策略;
  3. 聚类准则是评价标准,确定性聚类用SSE,概率型聚类用似然函数;
  4. 经典聚类算法各有优劣:K-means高效适合大规模数据,DBSCAN可发现任意形状簇,层次聚类无需指定K;
  5. 混合高斯模型(GMM) 是概率型聚类的代表,实现软聚类;
  6. EM算法是GMM参数估计的核心工具,通过E步和M步解决隐变量问题。

聚类分析的关键在于“因地制宜”——需结合数据特征(维度、类型、分布)和业务需求(是否需识别噪声、是否已知簇数)选择合适的方法。例如,高维文本数据适合用余弦相似性+K-means,含噪声的非球形数据适合用DBSCAN,需概率输出的场景适合用GMM-EM。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterInsight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值