GMM算法与KMeans算法的联系(高斯混合 K-means)

从混合高斯密度函数估计的角度,简述K-Means聚类算法的原理。给出K-Means聚类算法的计算步骤,说明会影响K-Means算法聚类性能的因素

K-Means算法可以看作是一种简化的混合高斯模型,在GMM模型中,需要估计的参数有每个高斯成分前的系数,每个高斯成分的协方差矩阵和均值向量。K-Means等价于固定GMM中每个高斯成分的系数都相等,每个高斯成分都协方差矩阵为单位阵,只需要优化每个高斯成分的均值向量。那么K-Means模型可以写成(一共有C个类别,n个样本):
p ( x ) = 1 C ∑ i = 1 C 1 2 π e x p { − 1 2 ( x − μ i ) T ( x − μ i ) } p(x)=\frac1C\sum_{i=1}^C \frac{1}{\sqrt{2\pi}}exp\{-\frac12(x-\mu_i)^T(x-\mu_i)\} p(x)=C1i=1C2π 1exp{21(xμi)T(xμi)}
对上式运用极大似然估计,对数似然函数
log ⁡ ∏ i = 1 n p ( x i ) = ∑ i = 1 n log ⁡ p ( x i ) = − n log ⁡ ( C 2 π ) + ∑ i = 1 n log ⁡ ( ∑ j = 1 C exp ⁡ ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) ) \log \prod_{i=1}^n p(x_i)=\sum_{i=1}^n\log p(x_i)=-n\log(C\sqrt{2\pi})+\sum_{i=1}^n\log\left(\sum_{j=1}^C\exp\left(-\frac{1}{2}(x_i-\mu_j)^T(x_i-\mu_j)\right)\right) logi=1np(xi)=i=1nlogp(xi)=nlog(C2π )+i=1nlog(j=1Cexp(21(xiμj)T(xiμj)))

令似然函数对 μ j \mu_j μj的梯度为0得到
∑ i = 1 n exp ⁡ ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) ∑ j = 1 C exp ⁡ ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) ( x i − μ j ) = 0 ⇔ ∑ i = 1 n γ j ( x i ) ( x i − μ j ) = 0 其 中 γ j ( x i ) = exp ⁡ ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) ∑ j = 1 C exp ⁡ ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) ( ▽ ) \sum_{i=1}^n\frac{\exp(-\frac12(x_i-\mu_j)^T(x_i-\mu_j))}{\sum_{j=1}^C \exp\left(-\frac{1}{2}(x_i-\mu_j)^T(x_i-\mu_j)\right)}(x_i-\mu_j)=0\\ \Leftrightarrow \sum_{i=1}^n \gamma_j(x_i)(x_i-\mu_j)=0\\ 其中\gamma_j(x_i)=\frac{\exp(-\frac12(x_i-\mu_j)^T(x_i-\mu_j))}{\sum_{j=1}^C \exp\left(-\frac{1}{2}(x_i-\mu_j)^T(x_i-\mu_j)\right)}\qquad(\triangledown) i=1nj=1Cexp(21(xiμj)T(xiμj))exp(21(xiμj)T(xiμj))(xiμj)=0i=1nγj(xi)(xiμj)=0γj(xi)=j=1Cexp(21(xiμj)T(xiμj))exp(21(xiμj)T(xiμj))()
K-Means算法等价于使用近似的EM算法

  • 在E步骤中近似计算得到 γ j ( x i ) \gamma_j(x_i) γj(xi)。近似规则为
    γ j ( x i ) = { 1 , i f   j = arg ⁡ max ⁡ j ( − 1 2 ( x i − μ j ) T ( x i − μ j ) ) 0 , o t h e r \gamma_j(x_i)=\left\{\begin{matrix}1 & ,&if\ j=\arg\max_j(-\frac12(x_i-\mu_j)^T(x_i-\mu_j))\\0&,&other\end{matrix}\right. γj(xi)={10,,if j=argmaxj(21(xiμj)T(xiμj))other
    即为每个 x i x_i xi分配一个最近高斯类。

  • 在M步骤中,将近似的 γ j ( x i ) \gamma_j(x_i) γj(xi)代入 ( ▽ ) (\triangledown) ()式,可以得到 μ j = ∑ i = 1 n γ j ( x i ) x i ∑ i = 1 n γ j ( x i ) \mu_j = \frac{\sum_{i=1}^n\gamma_j(x_i)x_i}{\sum_{i=1}^n\gamma_j(x_i)} μj=i=1nγj(xi)i=1nγj(xi)xi,即更新 μ j \mu_j μj为属于 j j j类别的样本的均值。

计算步骤:

  1. 随机选择K个类中心。
  2. 将每个样本分配到离其最近的类中心。
  3. 更新类中心为上一步分配到该类的样本的均值。

影响聚类性能的因素:

  1. 数据本身的分布,如果数据分布不符合高斯特性,那么分类效果差。
  2. 不同类别数据的样本数量的差距,由于K-Means是GMM的一个简化,其假设了GMM中每个高斯项前的系数相同,所以当样本类别数量不均衡时效果差。
  3. 离群点的存在会对计算样本的均值造成影响。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值