GMM与EM算法的Python实现

GMM与EM算法的Python实现高斯混合模型(GMM)是一种常用的聚类模型,通常我们利用最大期望算法(EM)对高斯混合模型中的参数进行估计。本教程中,我们自己动手一步步实现高斯混合模型。完整代码在第4节。预计学习用时:30分钟。本教程基于Python 3.6。原创者:u_u | 修改校对:SofaSofa TeamM |1. 高斯混合模型(Gaussian Mixture mode...
摘要由CSDN通过智能技术生成

GMM与EM算法的Python实现

高斯混合模型(GMM)是一种常用的聚类模型,通常我们利用最大期望算法(EM)对高斯混合模型中的参数进行估计。

本教程中,我们自己动手一步步实现高斯混合模型。完整代码在第4节。

预计学习用时:30分钟。

本教程基于Python 3.6

原创者:u_u | 修改校对:SofaSofa TeamM |


1. 高斯混合模型(Gaussian Mixture models, GMM)

高斯混合模型(Gaussian Mixture Model,GMM)是一种软聚类模型。
GMM也可以看作是K-means的推广,因为GMM不仅是考虑到了数据分布的均值,也考虑到了协方差。和K-means一样,我们需要提前确定簇的个数。

GMM的基本假设为数据是由几个不同的高斯分布的随机变量组合而成。如下图,我们就是用三个二维高斯分布生成的数据集。

在这里插入图片描述

在高斯混合模型中,我们需要估计每一个高斯分布的均值与方差。从最大似然估计的角度来说,给定某个有 n n n个样本的数据集 X X X,假如已知GMM中一共有 k k k簇,我们就是要找到 k k k组均值 μ 1 , ⋯   , μ k \mu_1,\cdots,\mu_k μ1,,μk k k k组方差 σ 1 , ⋯   , σ k \sigma_1, \cdots, \sigma_k σ1,,σk来最大化以下似然函数 L \mathcal L L
L ( ( μ 1 , ⋯   , μ k ) , ( σ 1 , ⋯   , σ k ) ; X ) . \mathcal L((\mu_1,\cdots,\mu_k), (\sigma_1, \cdots, \sigma_k);X). L((μ1,,μk),(σ1,,σk);X).

这里直接计算似然函数比较困难,于是我们引入隐变量(latent variable),这里的隐变量就是每个样本属于每一簇的概率。假设 W W W是一个 n × k n\times k n×k的矩阵,其中 W i , j W_{i,j} Wi,j是第 i i i个样本属于第 j j j簇的概率。

在已知 W W W的情况下,我们就很容易计算似然函数 L W \mathcal L_W LW

L W ( ( μ 1 , ⋯   , μ k ) , ( σ 1 , ⋯   , σ k ) ; X ) , \mathcal{L}_W((\mu_1,\cdots,\mu_k), (\sigma_1, \cdots, \sigma_k);X), LW((μ1,,μk),(σ1,,σk);X),
将其写成

L W = ∏ i = 1 n ( ∑ j = 1 k W i , j P ( X i ∣ μ j , σ j ) ) \mathcal{L}_W=\prod_{i=1}^n\left(\sum_{j=1}^k W_{i,j}P(X_i | \mu_j, \sigma_j)\right) LW=i=1n(j=1kWi,jP(Xiμj,σj))

其中 P ( X i ∣ μ j , σ j ) P(X_i | \mu_j, \sigma_j) P(Xiμ

  • 20
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值