数据挖掘十大算法之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∣θ)=z∑P(z∣θ)P(y∣z,θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y
随机变量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,...,Yn)T,未观测数据表示为
Z
=
(
Z
1
,
Z
2
,
.
.
.
,
Z
n
)
T
Z= (Z_1,Z_2,...,Z_n)^T
Z=(Z1,Z2,...,Zn)T,则观测数据的似然函数为
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∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)=j=1∏n[πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi] 以上是关于数据挖掘十大算法之EM最大期望估计算法的主要内容,如果未能解决你的问题,请参考以下文章
考虑求模型参数
θ
=
(
π
,
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
πi,pi,qi下观测数据
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(1−pi)1−yi+(1−πi)(qi)yi(1−qi)1−yiπi(pi)yi(1−pi)1−yi
M步:计算模型参数的新估计值
π
i
+
1