《机器学习》 小白Python学习笔记(十) ————EM算法

本文介绍了EM算法的基础知识,包括算法原理、流程和应用。EM算法主要用于处理有缺失值的数据集,通过迭代更新估计模型参数。文章详细阐述了E步和M步的计算过程,并给出了算法的迭代流程。
摘要由CSDN通过智能技术生成

《机器学习》 小白Python学习笔记(十) ————EM算法

简介

作为数据挖掘十大算法之一的EM算法的全称是Expectation Maximization Algorithm,也就是期望最大算法,算法包括两个步骤,首先是期望步(E步),然后是极大步(M步)。
EM算法最初是为了解决在样本数据集中出现缺失值时进行参数估计的问题。基本思路是:首先根据已经给出的观测数据,估计出模型参数的值,然后再根据上一步估计出的参数值估计出数据中的缺失值,然后再根据原有数据和估计的缺失值对模型参数进行迭代更新,依此类推,直至收敛。算法的收敛性证明也早在1977年被提出时就被证明了。
现如今,EM算法也早已不再只用于处理缺失值的问题了,有时即使数据没有缺失,为了对问题进行简化,可以利用EM算法添加出一些“潜在数据”。

算法原理

对于m个样本观测数据 x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( m ) ) x=(x^{(1)},x^{(2)},\cdots,x^{(m)}) x=(x(1),x(2),,x(m)),设模型的待估参数为 θ \theta θ,则其估计的对数似然函数为:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ P ( x ( i ) ; θ ) \theta=\arg \max _{\theta} \sum_{i=1}^{m} \log P\left(x^{(i)} ; \theta\right) θ=argθmaxi=1mlogP(x(i);θ)
如果我们得到的观察数据有未观察到的隐含数据 z = ( z ( 1 ) , z ( 2 ) , … z ( m ) ) , z=\left(z^{(1)}, z^{(2)}, \ldots z^{(m)}\right), z=(z(1),z(2),z(m)), 此时我们的极
大化模型分布的对数似然函数如下:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ P ( x ( i ) ; θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m log ⁡ ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) \theta=\arg \max _{\theta} \sum_{i=1}^{m} \log P\left(x^{(i)} ; \theta\right)=\arg \max _{\theta} \sum_{i=1}^{m} \log \sum_{z^{(i)}} P\left(x^{(i)}, z^{(i)} ; \theta\right) θ=argθmaxi=1mlogP(x(i);θ)=argθmaxi=1mlogz(i)P(x(i),z(i);θ)
上面这个式子是没有 办法直接求出\theta的。因此需要一些特殊的技巧,我们首先对这个式
子进行缩放如下:
∑ i = 1 m log ⁡ ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \begin{aligned} \sum_{i=1}^{m} \log \sum_{z^{(i)}} P\left(x^{(i)}, z^{(i)} ; \theta\right) &=\sum_{i=1}^{m} \log \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \frac{P\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \\ & \geq \sum_{i=1}^{m} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{P\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \end{aligned}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值