EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)

本文深入探讨了k-means聚类算法,从EM角度解析其工作原理,包括E步和M步的迭代过程,以及算法的特点和局限性。此外,还介绍了高斯混合模型(GMM),阐述了GMM在处理非圆形分布数据时的优势,并详细解释了EM算法在GMM中的应用,包括E步的Q函数确定和M步的参数更新。
摘要由CSDN通过智能技术生成


上一篇文章,我们讲的期望最大化(EM)算法是一种非常强大的算法,应用于数据科学的许多场景。k-means是该算法非常简单且易于理解的一个应用。

k-means聚类

k均值聚类算法(k-means)将样本集合划分为k个子集,也就是将n个样本划分到k个类别中,每个样本到类别的中心距离最近。

EM角度的理解

如果从EM角度来理解的话,k均值聚类算法的隐变量是聚类的中心,模型的参数是每个数据点属于哪个分类。k-means算法描述如下:

(1)选择初始聚类中心

(2)E步:将样本分配到距离最近的中心形成簇

(3)M步:将簇的中心设置为簇内各个样本的均值

(4)重复(2)(3)直到收敛

E步就是估计隐含类别y的期望值,M步调整其他参数使得在给定类别y的情况下,极大似然估计P(x,y)能够达到极大值。然后在其他参数确定的情况下,重新估计y,周而复始,直至收敛。

算法流程

k-means可以采用欧式距离的平方作为样本之间的距离度量:
d ( x i , x j ) = ∑ k = 1 m ( x k i − x k j ) 2 = ∣ ∣ x i − x j ∣ ∣ 2 2 d(x_i, x_j) = \sum^m_{k=1}(x_{ki}-x_{kj})^2=||x_i-x_j||^2_2 d(xi,xj)=k=1m(xkixkj)2=xixj22
然后定义样本与所属类的中心之间的距离的总和为损失函数:
W ( C ) = ∑ l = 1 k ∑ C ( i ) = 1 ∣ ∣ x i − x ˉ l ∣ ∣ 2 2 W(C) = \sum^k_{l=1}\sum_{C(i)=1}||x_i-\bar x_l||^2_2 W(C)=l=1kC(i)=1xixˉl22
x ˉ l = ( x ˉ 1 l , x ˉ 2 l , . . . , x ˉ m l ) T \bar x_l=(\bar x_{1l},\bar x_{2l},...,\bar x_{ml})^T xˉl=(xˉ1l,xˉ2l,...,xˉml)T是第 l l l个类的均值或者中心, n l = ∑ i = 1 n I ( C ( i ) = l ) n_l=\sum_{i=1}^n I(C(i)=l) nl=i=1nI(C(i)=l) I ( C ( i ) = l ) I(C(i)=l) I(C(i)=l)是指示函数,第i个样本属于类别 l l l时取1,否则取0。W© 衡量了相同类别的样本的相似程度。

k-means算法就是求出最佳的k,使得各个类别内的样本相似度尽可能的高:
C ∗ = arg ⁡ min ⁡ C W ( C ) = arg ⁡ min ⁡ C ∑ l = 1 k ∑ C ( i ) = 1 ∣ ∣ x i − x ˉ l ∣ ∣ 2 2 C^* = \arg\min\limits_{C}W(C) =\arg\min\limits_{C}\sum^k_{l=1}\sum_{C(i)=1}||x_i-\bar x_l||^2_2 C=argCminW(C)=argCminl=1kC(i)=1xixˉl22
虽然上述目标函数的最优化可以达到聚类的目的,但是n个样本划分到k个类别,可能的划分方案的个数是指数级别的,难以求解。

为此,k均值聚类算法采用迭代的方式达到聚类的效果,每次迭代包含两个步骤:

  1. 随机生成或者选择k个样本作为聚类中心,将每个样本分配到最近的中心,得到一个聚类结果。
  2. 计算每个类内所有样本的均值,作为这个类别新的聚类中心。
  3. 重复1,2直到聚类结果不再发生变化。

迭代过程如下面的动图所示:

《统计学习方法》第 14 章 聚类方法 KMeans

具体过程如下:

首先,对于给定的k个中心 ( m 1 , m 2 , . . . , m k ) (m_1, m_2,...,m_k) (m1,m2,...,mk)求一个划分C,每个样本划分到一个类中,使得样本和所属类的中心之间的距离总和最小,即下面的式子极小化:
W ( C ) = min ⁡ C ∑ l = 1 k ∑ C ( i ) = l ∣ ∣ x i − m l ∣ ∣ 2 2 W(C)=\min\limits_C\sum_{l=1}^k\sum_{C(i)=l}||x_i-m_l||^2_2 W(C)=Cminl=1kC(i)=lximl22
然后,对给定的划分C或者说在类中心确定的情况下,再求各个类的中心 ( m 1 , m 2 , . . . , m k ) (m_1, m_2,...,m_k) (m1,m2,...,mk),使得各个样本到这个中心的距离之和最小,一般要求的这个中心就是各个类别内样本的均值。这个过程描述如下:
W ( C ) = min ⁡ m 1 , . . . , m k ∑ l = 1 k ∑ C ( i ) = l ∣ ∣ x i − m l ∣ ∣ 2 2 W(C)=\min\limits_{m_1,...,m_k}\sum_{l=1}^k\sum_{C(i)=l}||x_i-m_l||^2_2 W(C)=m1,...,mkminl=1kC(i)=lximl22
对于包含了 n l n_l nl个样本的 C l C_l Cl,更新其均值 m l m_l ml。也就是说,具体求新的中心的过程如下:
m l = 1 n l ∑ C ( i ) = l x i , l = 1 , 2 , . . . k m_l = \frac{1}{n_l}\sum_{C(i)=l}x_i, l=1,2,...k ml=nl1C(i)=lxi,l=1,2,...k
重复上面的步骤,直到划分不再改变,就得到了聚类的结果。

特点

k均值聚类算法的总体特点:

  1. 是基于划分的聚类方法
  2. 类别k事先指定
  3. 以欧式距离平方作为距离的度量方式
  4. 以中心或者样本的均值表示类别
  5. 以样本和所属的类的中心的距离之和作为目标函数
  6. 算法是迭代算法,不能保证得到全局最优。

k均值聚类算法属于启发式方法,不能保证达到全局最优,受到初始中心的很大影响。

关于初始中心的选择,可以先用层次聚类对样本进行聚类,得到k个类别后,再从k个类别中选取一个与中心距离最近的点。

k值选择

关于类别数k的选择,在实际应用中需要尝试不同的k值,检验聚类结果的质量。聚类结果可以用类别的平均直径来衡量。
在这里插入图片描述

如上图所示,一般地,类别数量变大时,类别平均直径会变小,当类别数量超过某个值后,平均直径不再改变,这个值就是最优的k值。

局限性

不过,k-means聚类也有比较明显的局限性。当各个样本的分布接近圆形(球形)的时候,效果还不错:

在这里插入图片描述

但是,当各个样本的分布不那么“圆”的时候,聚类效果就打折扣了:

在这里插入图片描述

因此,我们需要一种不同的方法来为数据点分配聚类。因此,我们将不再使用基于距离的模型,而是使用基于分布的模型。效果如下:

在这里插入图片描述

下面要介绍的高斯混合模型就是基于分布的模型。

高斯混合模型

GMM的问题描述

高斯混合模型(GMM)假设存在一定数量的高斯分布,每个分布代表一个簇。因此,高斯混合模型倾向于将属于单一分布的数据点聚在一起。

高斯混合模型的数学公式:
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y|\theta)=\sum\limits^{K}_{k=1}\alpha_k\phi(y|\theta_k) P(yθ)=k=1Kαkϕ(yθk)
其中, α k \alpha_k αk是系数, α k ≥ 0 \alpha_k\ge0 αk0 ∑ k = 1 K α k = 1 \sum\limits^{K}_{k=1}\alpha_k=1 k=1Kαk=1, ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)高斯分布密度 θ k = ( μ k , σ k 2 ) \theta_k=(\mu_k,\sigma_k^2) θk=(μk,σk2)
ϕ ( y ∣ θ k ) = 1 2 π σ k exp ⁡ ( − ( y − μ k ) 2 2 σ k 2 ) \phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\left(-\frac{(y-\mu_k)^2}{2\sigma_k^2}\right) ϕ(yθk)=2π σk1exp(2σk2(yμk)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值