机器学习之EM
EM
EM算法也称期望最⼤化(Expectation-Maximum,简称EM)算法。 它是⼀个基础算法,是很多机器学习领域算法的基础
它的计算⽅法中每⼀次迭代都分两步, 其中⼀个为期望步(E步), 另⼀个为极⼤步(M步)
其基本思想是:
- ⾸先根据⼰经给出的观测数据,估计出模型参数的值;
- 然后再依据上⼀步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前⼰经观测到的数据重新再 对参数值进⾏估计;
- 然后反复迭代,直⾄最后收敛,迭代结束。
极大似然估计
⼀个超级简单的案例
假设现在有两枚硬币1和2,,随机抛掷后正⾯朝上概率分别为P1,P2。为了估计这两个概率,做实验,每次取⼀枚硬 币,连掷5下,记录下结果,如下:
硬币 结果 统计
1 正正反正反 3正-2反
2 反反正正反 2正-3反
1 正反反反反 1正-4反
2 正反反正正 3正-2反
1 反正正反反 2正-3反
可以很容易地估计出P1和P2,如下:
P1 = (3+1+2)/ 15 = 0.4
P2= (2+3)/10 = 0.5
加⼊隐变量z后的求解
还是上⾯的问题,现在我们抹去每轮投掷时使⽤的硬币标记,
如下:
硬币 结果 统计
Unknown 正正反正反 3正-2反
Unknown 反反正正反 2正-3反
Unknown 正反反反反 1正-4反
Unknown 正反反正正 3正-2反
Unknown 反正正反反 2正-3反
先随便给P1和P2赋⼀个值,
⽐如: P1 = 0.2 P2 = 0.7
然后,我们看看第⼀轮抛掷最可能是哪个硬币。
如果是硬币1,得出3正2反的概率为 0.2 ∗ 0.2 ∗ 0.2 ∗ 0.8 ∗ 0.8 = 0.00512
如果是硬币2,得出3正2反的概率为0.7 ∗ 0.7 ∗ 0.7 ∗ 0.3 ∗ 0.3 = 0.03087
轮数 若是硬币1 若是硬币2
1 | 0.00512 | 0.03087
2 | 0.02048 | 0.01323
3 | 0.08192 | 0.00567
4 | 0.00512 | 0.03087
5 | 0.02048 | 0.01323
把上⾯的值作为z的估计值。然后按照最⼤似然概率法则来估计新的P1和P2。
P1 = (2+1+2)/15 = 0.33
P2=(3+3)/10 = 0.6
我们需要用一个最可能的z,求出p1和p2
CSDN-Ada助手: 推荐 算法 技能树:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm
贩卖日落·: 运行超时了
m0_64916812: 能发一下node1,node2,node3吗
不正经的kimol君: 收获很多,谢谢大佬的分享