机器学习期望最大算法:实例解析

01 回顾

已经分析了朴素贝叶斯分类,拉普拉斯修正,半朴素贝叶斯分类器,在这些理论阐述中,都带有详细的例子解释,通过例子理解相关的理论是一种快速消化公式和理论比较不错的方法。

接下来,介绍一种非常经典的求解隐变量的算法,这也是一种经典的算法。让我们先从最大似然估计入手,在03节真正分析这种算法。

02 最大似然估计求分布参数

给定一堆苹果,里面有好苹果,也有坏苹果。好果的分布满足某种概率分布,也就是拿到第 i 个苹果的概率为 P(i | theta),其中theta表示好果的分布满足某种参数theta的概率分布,这个theta就是好果分布情况的一个参数吧。

怎么求解这个参数theta呢? 我们会从一堆苹果中,随机地选取足够多的苹果,然后对每个拿到的苹果标记是好苹果,还是坏苹果,比如随机地选择了10个苹果,其中好苹果标记为 Good,否则为 bad,拿到的序列如下所示:
1 Good
2 Good
3 bad
4 Good
5 Good
6 Good
7 bad
8 Good
9 bad
10 Good

在拿到这些序列后,不就相当于我们拿到一个已知条件吗:在这批实验数据中,有7个好果,3个坏果。

根据最大似然估计的理念,既然这10个苹果序列已经出现了,那么我们就估计并认为整个样本中好苹果的分布概率为:7/10 = 0.7,即:原序列中好苹果的分布规律为:遵从概率为0.7的分布吧,坏苹果同样满足0.3的概率分布。

这种根据抽取的一些数据样本的方法,推算某个样本的分布参数的过程,就被称为最大似然估计,它是根据已有数据来获得分布规律的利器。

03 带有隐变量时求分布参数theta

现在为了构造出一个隐变量,在上面那个例子基础上,假设这一批苹果有的来自烟台,有的来自威海,这样无形中增加了一个隐变量:苹果的出处,这个特征吧,并且烟台的苹果中好苹果的概率分布满足二项分布,威海的也满足,这样相当于我们有两个分布,并且都满足高斯分布,只不过它们的分布参数不相同,如:烟台的好苹果概率为 theta_yan;威海的好苹果概率为theta_wei,那么如何求出这两个参数获得分布规律呢?

这就得借助经典的Expectation-Maximum算法,即期望最大算法了。

首先假定,初始时,theta_yan0 = 0.85,theta_wei0 = 0.80。

然后开始从那一堆苹果(来自于两地的混合)中,随机的取样了10个,发现有7个好果,3个坏果。那么出现这种情况的概率是多大呢?因为已经知道了初始时,theta_yan0 = 0.85,theta_wei0= 0.80,所以对于烟台的苹果分布而言,出现这种分布情况的概率是多大呢?

对于威海的苹果分布而言,出现这种分布情况的概率是多大呢?

那么选择的苹果来自于烟台的概率为:

那么选择的苹果来自威海的概率 P_wei 自然等于 1 - P_yan 吧。

这样这10个苹果中,来自烟台的好苹果的个数的期望值是不是就能求出来了:概率乘以好苹果个数: P_yan * 7;坏果自然等于:P_yan * 3
同理可求出来自威海的好苹果数量的期望值:P_wei * 7,坏苹果等于:P_wei * 3 。

以上便是EM算法的中的E步;那么M步是怎么回事呢?

M步是求出下一个迭代参数 theta_yan1 和 theta_wei1的过程,它们的计算原理,就是根据E步计算出来的期望值,具体来说:

theta_wei1的求解公式同上式相似,这样M步的计算过程也搞定。
再根据以上过程,由 theta_yan1,theta_wei1,得出theta_yan2,theta_wei2,等等。
直至达到某个阈值,迭代结束,这样theta_yanx,theta_weix就是最终的求解值:烟台和威海的好苹果的概率。

04 总结和展望

以上就是EM算法的求解过程,E步得出属于隐变量取值的期望,M步根据隐变量取值的期望计算出新的参数theta,这样不断迭代下去,直至收敛。

以上这堆苹果是从烟台和威海这两个地方来的吧,一共得到了两种满足二项分布的好苹果的分布吧。

那么如果,我们这堆苹果是从全国各地选取过来的呢,这时苹果的分布情况就由 K 个二项分布组成吧。

类似的这种数据如果来自于K个满足高斯分布中生成出来的模型,称为高斯混合模型(GMM),它在含有隐变量,且每个簇的高斯分布参数不同时,对于这样的聚类任务,GMM是比较理想的聚类算法。欢迎关注明天的推送:GMM聚类sklearn掉包解析。

谢谢您的阅读,希望对您有帮助!

请记住:每天一小步,日积月累一大步!

交流思想,注重分析,更注重通过实例让您通俗易懂。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值