利用EM算法处理聚类问题的步骤:
样本数据x={x1,x2,...,xm},联合分布p(x,z;θ),条件分布p(z|x;θ),最大迭代次数J 。
1、 随机初始化模型参数θ的初始值θ0
2、开始EM算法的迭代处理:
__E步:__计算联合分布的条件概率
__M步:__极大化L函数,得到θj+1
如果θj+1已经收敛,则算法结束,输出最终的模型参数θ,否则继续迭代处理。
七、EM算法直观案例
假设现有两个装有不定数量黑球、白球的盒子,随机从盒子中抽取出一个白球的概率分布为p1和p2;为了估计这两个概率,每次选择一个盒子,有放回的连续随机抽取5个球,记录如下:
使用MLE最大似然估计:
如果现在不知道具体的盒子编号,但是同样还是为了求解p1和p2的值,这个时候就相当于多了一个隐藏变量z, z表示的是每次抽取的时候选择的盒子编号,比如z1就表示第一次抽取的时候选择的是盒子1还是盒子2。
随机初始一个概率值:p1=0.1和p2=0.9;然后使用最大似然估计计算每轮操作中从两个盒子中抽取的最大概率。然后计算出来的z值,重新使用极大似然估计法则估计概率值。
使用最大似然概率法则估计z和p的值,但是在这个过程中,只使用一个最有可能的值。如果考虑所有的z值,然后对每一组z值都估计一个概率p,那么这个时候估计出来的概率可能会更好,可以用期望的方式来简化这个操作。
以p1估计为例,计算如下:
计算出p1和p2的概率值后,再次计算从每个盒子中抽取的概率如下:
再次计算概率值如下: