数据挖掘十大算法之EM最大期望估计算法

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘十大算法之EM最大期望估计算法相关的知识,希望对你有一定的参考价值。

目录

1 简介

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的迭代由两步组成:E步,求期望,M步,求极大。
概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯法估计模型参数。但是,当模型含有隐变量时,就不能用简单地使用这些估计方法。
是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。

2 投硬币问题

假设有三枚硬币,分别记A、B、C,这些硬币正面出现的概率分别是 π \\pi π,p和q。进行如下掷硬币试验:先掷硬币A,正面继续掷硬币B,反面掷硬币C;然后掷选出来的硬币B或C,出现正面记为1,反面记为0;独立重复n次试验,观测结果如下
1 1 0 1 0 0 1 0 1 1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程,问如何估计三个硬币正面出现的概率,即三硬币模型的参数。
解:
三个硬币的模型可写作
P ( y ∣ θ ) = ∑ z ( y , z ∣ θ ) = ∑ z P ( z ∣ θ ) P ( y ∣ z , θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y P(y|\\theta) = \\sum_z(y,z|\\theta) = \\sum_z P(z|\\theta) P(y|z,\\theta)\\\\ =\\pi p_y(1-p)^1-y+(1-\\pi)q_y(1-q)^1-y P(yθ)=z(y,zθ)=zP(zθ)P(yz,θ)=πpy(1p)1y+(1π)qy(1q)1y
随机变量y是观测变量,表示一次试验观测的结果是1或0;随机变量z是隐变量,表示未观测到的掷硬币的A的结果; θ = ( π , p , q ) \\theta = (\\pi,p,q) θ=(π,p,q)是模型参数,这一模型是以上数据的生成模型。注意,随机变量y的数据可以观测,随机变量z的数据是不可观测。
将观测的数据表示为 Y = ( Y 1 , Y 2 , . . . , Y n ) T Y= (Y_1,Y_2,...,Y_n)^T Y=Y1,Y2,...,YnT,未观测数据表示为 Z = ( Z 1 , Z 2 , . . . , Z n ) T Z= (Z_1,Z_2,...,Z_n)^T Z=Z1,Z2,...,ZnT,则观测数据的似然函数为

P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) = ∏ j = 1 n [ π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ] P(Y|\\theta) = \\sum_ZP(Z|\\theta)P(Y|Z,\\theta)\\\\ =\\prod _j=1^n [\\pi p^y_i(1-p)^1-y_i+(1-\\pi)q^y_i(1-q)^1-y_i] P(Yθ)=ZP(Zθ)P(YZ,θ)=j=1n[πpyi(1p)1yi+(1π)qyi(1q)1yi]
考虑求模型参数 θ = ( π , p , q ) \\theta = (\\pi,p,q) θ=(π,p,q)的极大似然估计,即
θ ^ = a r g m a x θ l o g P ( Y ∣ θ ) \\hat\\theta = argmax_\\theta logP(Y|\\theta) θ^=argmaxθlogP(Yθ)
以下通过属于迭代算法的EM算法求解
EM算法首先选取参数的初值,记作 θ 0 = ( π 0 , p 0 , q 0 ) \\theta ^0 = (\\pi^0,p^0,q^0) θ0=(π0,p0,q0),然后通过下面的步骤迭代计算参数的估计值,直至收敛为止。第i次迭代参数的估计值为 θ i = ( π i , p i , q i ) \\theta^i = (\\pi^i,p^i,q^i) θi=(πi,pi,qi)。EM算法的第i+1次迭代如下:
E步:计算在模型参数 π i , p i , q i \\pi^i,p^i,q^i πipiqi下观测数据 y j y_j yj来自掷硬币B的概率
μ j i + 1 = π i ( p i ) y i ( 1 − p i ) 1 − y i π i ( p i ) y i ( 1 − p i ) 1 − y i + ( 1 − π i ) ( q i ) y i ( 1 − q i ) 1 − y i \\mu_j^i+1 = \\frac\\pi^i (p^i)^y_i (1-p^i)^1-y_i\\pi^i(p^i)^y_i(1-p^i)^1-y_i+(1-\\pi^i)(q^i)^y_i(1-q^i)^1-y_i μji+1=πi(pi)yi(1pi)1yi+(1πi)(qi)yi(1qi)1yiπi(pi)yi(1pi)1yi
M步:计算模型参数的新估计值
π i + 1

以上是关于数据挖掘十大算法之EM最大期望估计算法的主要内容,如果未能解决你的问题,请参考以下文章

Expectation Maximization-EM(期望最大化)-算法以及源码

从似然函数到EM算法(附代码实现)

EM最大期望算法

机器学习笔记:EM算法(期望最大算法)

大数据部落R语言实现:混合正态分布EM最大期望估计法

R语言实现:混合正态分布EM最大期望估计法