机器学习-K-means VS EM算法

K-means 算法

目标:把数据(n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类。
所对应的公式如下所示:
公式原理
具体实现方式有Lloyd’s algorithm(尤其在计算机科学领域)。这是最为经典简单的K-means迭代算法。步骤如下:

  1. 随机选取K个点作为初始的中心点
  2. 计算每个点与K个中心点的K个距离
  3. 分配点到距离其最近的中心点的类中
  4. 重新计算每个类的中心点(取平均值)
  5. 不断重读2,3,4步骤,直到收敛

具体的例子如下:
下面我们有6个点。

XY
P100
P212
P331
P488
P5910
P6107

首先,

  1. 设置k=2(k如何设置之后会在详细讲)
  2. 随便选取两个点作为初始化的中心点,比如选P1,P2
  3. 计算剩下的每个点与每个中心点的距离。因此我们有如下表格:
P1P2
P33.162.24
P411.39.22
P513.511.3
P612.210.3

从表格我们可以看出,所有点离P2更近,因此,所有点都放在P2的类内
Cluster1: P1
Cluster2: P2,P3,P4,P5,P6
于是我们需要重新再来算一次每个类的中心点,即求平均值
Cluster1的中心点仍是P1,因为只有一个点
Cluster2 的中心点计算,取五个点的平均值得到,中心点为(6.2,5.6)
再次计算剩下的每个点与中心点的距离,如下表所示:

P1(6.2,5.6)
P22.246.3
P33.165.6
P411.33
P513.55.2
P612.24.1

于是,这次我们可以看到,P2,P3离中心点P1更近,而P4,5,6离中心点(6.2,5.6)更近,因此这次的分类为:
Cluster1: P1、P2、P3
Cluster2: P4、P5、P6
于是,再次计算两个类的中心点,cluster1的中心点为(4,3.4),cluster2的中点为(6,3),重新计算所有点与两个中心点的距离。

中心点1中心点2
P11.412
P20.610
P31.45.6
P4471.1
P5701.7
P6561.7

因此这次看出分类还是跟上次一样,1,2,3为一类,4,5,6为一类。证明收敛,结束。

EM算法

最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。
需要进行两个步骤:
第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

最大似然估计

首先要理解的是最大似然估计值是什么?

在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。“似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性。所以 极大似然就相当于最大可能的意思

比如你一位同学和一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声到下,如果要你推测,这一发命中的子弹是谁打的?你就会想,只发一枪便打中,由于猎人命中的概率一般大于你那位同学命中的概率,从而推断出这一枪应该是猎人射中的。【最大的可能性】

这个例子所作的推断就体现了最大似然法的基本思想。即我们已经知道结果(野兔死了),需要推导出现该结果的最大可能性的条件(估计是猎人杀的),作为估计值。

条件概率VS似然性
条件概率是根据条件推断结果的可能性,似然则是根据结果反推条件的可能性。两者相当于逆反关系。
已知某个参数B时,求事件A发生的概率: P ( A ∣ B ) P(A|B) P(AB) = P ( A , B ) P ( B ) \frac{P(A,B)}{P(B)} P(B)P(A,B)
通过贝叶斯逆反为: P ( B ∣ A ) P(B|A) P(BA) = P ( A ∣ B ) P ( B ) P ( A ) \frac{P(A|B)P(B)}{P(A)} P(A)P(AB)P(B)
反过来的意思是现在事件A已经发生了,求参数B的可能性
具体解释Ex:
假设统计分析一个地方的男女生身高分布,因此从这个地方随机挑选100个男生或者100个女生。统计他们的身高。
假定男生身高服从正态分布
N(u1,)
女生身高服从正态分布在这里插入图片描述
男生/女生这两个参数都是未知:设为未知参数θ=[u, ∂]T
现在需要用极大似然法(MLE),通过这100个男生或100个女生的身高结果,即样本集X来估计两个正态分布的未知参数θ,这也就是说我们已知X数据,求参数θ,即是P(θ|X), 取最大概率的那个参数θ。
从男生的数据分析,因为男生的身高总体是服从同一个高斯分布,即P(X|θ),虽然现在参数θ还未知。抽到男生A的概率为P(XA|θ),抽到男生B的概率为P(XB|θ),由于每个男生都是独立的,所以同时两个事件发生的概率为P(XA|θ) * P(XB|θ).放在所有男生当中,即从分布是p(x|θ)的总体样本中同时抽到这100个男生样本的概率,也就是样本集X中100个样本的联合概率(即它们各自概率的乘积)为:
在这里插入图片描述
公式这里 p(x;θ),也就是p(x|θ)
在整体那么多男生中,我一抽就抽到这100个男生,而不是其他人,那说明在整个学校中,这100个人(的身高)出现的概率最大啊,这个概率就是上面这个似然函数L(θ),怎么做到的呢?换言之,怎样的θ能让L(θ)最大,这个就是最大似然的思想~
假定我们找到一个参数^θ,能使似然函数L(θ)最大,即有:
^θ = argmax(L(θ))
下面就是i对目标函数求最大值时θ的值了。
首先这是相乘,所以加一个ln(对数处理),可以使目标函数变成相加。再求导,由于参数θ是多个参数的向量,因为我们需要求偏导数。让偏导数等于0,即达到最大值(最值)(当然,前提是函数L(θ)连续可微),解得此时的参数值
极大似然估计的总结:
极大似然估计的目标是求解实现结果的最佳参数θ,但极大似然估计需要面临的概率分布只有一个或者知道结果是通过哪个概率分布实现的,只不过你不知道这个概率分布的参数
现在我们让情况复杂一点,比如这100个男生和100个女生混在一起了。我们拥有200个人的身高数据,却不知道这200个人每一个是男生还是女生,此时的男女性别就像一个隐变量
通常来说,我们只有知道了每个人是男生还是女生才能尽可能准确地估计男女各自身高的正态分布的参数,现在男女生混在一起,情况变得复杂。而EM算法就是为了解决“极大似然估计”这种更复杂而存在的

EM算法中的隐变量

一般的用Y表示观测到的随机变量的数据,Z表示隐随机变量的数据(因为我们观测不到结果是从哪个概率分布中得出的,所以将这个叫做隐变量)。于是Y和Z连在一起被称为完全数据,仅Y一个被称为不完全数据。
这时有没有发现EM算法面临的问题主要就是:有个隐变量数据Z。而如果Z已知的话,那问题就可用极大似然估计求解了。
对于这个理解的一个日常解释:
假定你是一五星级酒店的厨师,现在需要把锅里的菜平均分配到两个碟子里。如果只有一个碟子乘菜那就什么都不用说了,但问题是有2个碟子,正因为根本无法估计一个碟子里应该乘多少菜,所以无法一次性把菜完全平均分配
因此一般厨子会:
大厨先把锅里的菜一股脑倒进两个碟子里,然后看看哪个碟子里的菜多,就把这个碟子中的菜往另一个碟子中匀匀,之后重复多次匀匀的过程,直到两个碟子中菜的量大致一样
这里就涉及到一个初始值,感觉如何分菜使得菜均匀就是概率分布
EM算法的思想就是:

  1. 给θ自主规定个初值
  2. 根据给定观测数据和当前的参数θ,求未观测数据z的条件概率分布的期望
  3. 上一步中z已经求出来了,于是根据极大似然估计求最优的θ’
  4. 因为第二步和第三步的结果可能不是最优的,所以重复第二步和第三步,直到收敛(重复多次匀匀的过程,直到两个碟子中菜的量大致一样)

而上面的第二步被称作E步(求期望),第三步被称作M步(求极大化),从而不断的E、M。

EM算法的实际例子-硬币

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jianafeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值