EM算法
mongoo
2013-09-25
利用EM算法解决极大似然估计( 不完整数据的参数估计 )过程中, 讲述EM算法.
一如既往, 举个例子, 例子原型来自 maximum likelihood estimation( 极大似然估计 ) - 有完整数据的参数估计, 如果不了解 极大似然估计( 不完整数据的参数估计 ), 可先阅读maximum likelihood estimation( 极大似然估计 ) - 有完整数据的参数估计.
描述问题之前, 先看如下一张表格
序号 | 店铺 | 喝到'卡布奇诺'人数 |
1 | 9 | |
2 | 5 | |
3 | 6 | |
4 | 8 | |
5 | 3 | |
6 | 9 | |
7 | 4 |
我们只得到如上表格数据, 因洒了咖啡店铺一列看不清楚了.
问: 在 A,B 两家店铺喝到 '卡布奇诺'的概率各多少?
当我们知道店铺这一列时, 可以使用"有完整数据的极大似然估计"解决, 若不知道那么可以使用迭代的方式来进行估计概率.
1, 我们先赋给 一个随机的初始值 . ( 实际使用中是有相应算法给出的, 随机分配一个符合定义域 [0, 1]的值也可以 )
2, 计算当前概率 下, 分别计算 A, B店铺的可能性, , 并认为概率大的就认为是那一家店铺. ( 所谓 E步骤 )
3, 根据第2步得出的店铺序列, 使用 maximum likelihood estimation( 极大似然估计 ) - 有完整数据的参数估计 估计新的一组 . ( 所谓 M步骤 )
这样一次一次迭代 2, 3 步骤直到收敛, 我们就得到了 的估计.