EM 算法在GMM中的应用

EM算法是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测到的隐变量。

EM估计GMM参数
1)初始值:
方1:协方差矩阵Σk设为单位矩阵,每个模型比例的先验概率πk=1/N,均值uk设为随机数。

方2:由k均值(k-means)聚类算法对样本进行聚类,利用各类的均值作为uk,并计算Σk,πk取各类样本占样本总数的比例。
一般选用方法一。
2)EM算法:

E-Step :E就是Expectation的意思,就是假设模型参数已知的情况下求隐含变量Z分别取z1,z2,…的概率。在GMM中就是求数据点由各个 component生成的概率。

γ(i,k)=αkPr(Zk|xi,π,μ,Σ) ——就是当前观测数据属于第k个componen的概率

注意到我们在Z的后验概率前面乘以了一个权值因子 αk ,它表示选中类别 zk 的频率,在GMM中它就是 πk

M-Step: M就是Maximization的意思,就是用最大似然的方法求出模型参数。现在我们认为上一步求出的r(i,k)就是“数据点xi由component k生成的概率”。根据公式(3),(4),(5)可以推出均值、协方差和权值的更新公式为:
Nk=Ni=1γ(i,k)

μ(k)=1NkNi=1γ(i,k)xi

π(k)=NkN

Σk=1NkNi=1γ(i,k)(xiμk)(xiμk)T

3)收敛条件:
不断地迭代E和M步骤,重复更新上面的三个值,直到参数的变化不显著。

GMM是一种聚类算法,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ),这可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,方法是:step1随机选择K个component中的一个(被选中的概率是πk);step2把样本代入刚选好的component,判断是否属于这个类别,如果不属于则回到step1。

R中的包mclust可用于分析高斯混合模型的聚类
例如:
##基于GMM的模型的聚类分析,GMM中的每一个高斯分布都可以代表数据的一类

library(mclust)
mc <- Mclust(iris[,1:4],3)
plot(mc,what="classification",dimens=c(3,4))
table(iris$Species,mc$classification)
             1  2  3
  setosa     50  0  0
  versicolor  0 45  5
  virginica   0  0 50

聚类

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值