1.简介

在讲EM之前,不知道大家还记不记得GMM算法,这个算法本质上也是一种聚类算法,而且GMM的求解正是利用本篇所讲的EM聚类来得到高斯分量的。

上篇提到了K-Means聚类,尽管这个算法很常用,但可能会遇到像聚类重叠,或聚类的形状不是圆形等问题;今天来学习一个新的聚类算法,叫EM聚类,这个算法本质上来说跟K-Means很像,但比K-Means全面更深入的描述一个聚类,因为除了利用均值(质心),还有方差(为了得到椭圆聚类),以及权重(聚类的size)。

为了更好地学习EM,先来举个例子:假设我们从一所高中里随机抽取了500个同学的鞋码数据,现在我们要在不知道任何信息的情况下对这500个数据进行分类,哪个是来自男生,哪个是来自女生;对于任何一堆数据我们都可以用高斯分布来拟合,基于这样一个假设,我们假定男生和女生的鞋码均满足不同参数下的高斯分布,并且给定一个初始的参数值(均值和方差),根据这个已知参数的高斯分布可以粗略地将每一个数据都划分到指定类(属于男生或女生);另外由于男生的鞋码普遍比女生大,一般在39到44之间,那么均值大略就是42左右,所以如果有一个数据是41,那么我们就更大可能地将其分到男生,基于此判别,我们就得到了500个数据的初始分类,然后根据极大似然的求解方法,利用这些属于男生分类的鞋码数据重新估计男生鞋码的高斯分布的参数,同样的方法重新估计出女生鞋码的高斯分布的参数;接着在男生和女生的鞋码分布被重新估计之后,归属于这两个分布的概率也随之会发生变化,那么我们就继续更新,这样多次迭代,直到两类的分布参数变化甚小停止迭代更新。

2.EM中用到的相关概念

2.1 边缘概率分布

2.2.詹森不等式

3.EM(期望最大化)基本原理

设样本数据(x1,x2,...,xn)间互相独立,每个样本对应的类别zi未知,我们的目的是确定样本所属类别使得p(xi;zi)最大化,则其似然函数为:

取对数:

               (1)

定义类别变量zi满足某一分布Qi,并且该分布(离散分布)满足以下条件:

           (3)

因此,利用上述提到的詹森不等式对公式(1)变形得到:

因为其实就是的期望,所以由詹森不等式可推导出如下:

(2)

到这里,可能会有人疑惑了,詹森不等式里明明是≤,为什么这里却变成了≥呢?很简单,这是因为詹森不等式是对凸函数而言的,但是我们这里的对数函数很明显它是一个凹函数啊,所以不等式符号要颠倒。

至此,通过公式(2)的求解我们得到了似然函数l(theta)的下界,如果theta已知,那么似然函数l(theta)的值就取决于两个概率Qi(zi),p(xi;zi),因此可以通过调整Qi(zi),p(xi;zi)的值,使公式(2)由不等式变成等式,这样来逼近似然函数l(theta)的值。根据詹森不等式可以知道,当且仅当X为常量时,不等式取等号,于是有:

          (4)

其中C是常量,对于一系列不同的zi之,进行求和得到:

又因为分母上为1(根据公式(3)),所以有:

代入公式(4),并且引入条件概率公式可得:

上式给出了关于类别的分布,剩下的工作就是对似然函数l(theta)进行最大化了:

4.小结

EM(期望最大化)聚类

与K-Means不同的是,这里我们并不计算距离,而是计算概率(并且明显要比K-Means复杂的多),用一个给定的多元高斯概率分布模型来估计出一个数据点属于一个聚类的概率,即将每一个聚类看作是一个高斯模型;

同样主要由两步交替进行:

E-step:对于每一个数据点,我们要计算其属于其中每个聚类的概率作为权重:如果一个点很大可能属于一个聚类,就将对应的概率设置为接近1的值,对于那种可能会出现一个点属于2个或多个聚类的情况,就需要建立一个对聚类的概率分布,所以EM算法有一个特性,就是没有严格要求一个点必须要属于一个聚类,这一特性被称为“软聚类(soft clustering)”。

M-step:这一步骤主要是利用上一步计算的权重来估计每个聚类的有关参数(均值,方差):每一个数据点以E-step中的概率作权重,然后与K-means一样计算每一个聚类的均值和方差,进而求取聚类的总体概率或极大似然。

这样通过E-step和M-step的不断交替来增加总的对数似然直到收敛,而且最大值也有可能陷入局部最优,所以需要多次迭代。

参考:https://mp.weixin.qq.com/s?__biz=MzA3MDg0MjgxNQ==&mid=2652389721&idx=1&sn=2851910b783c9ccdf947d4e25b9ce47e&scene=1&srcid=05304TZDoRrhIRoBHyYMx8UM&key=f5c31ae61525f82eab34f9ecf5d19f7cb72881dc8d3b8b0d8498eb9691a19e8e319ee936fb6ee86342b112fdbd4c7438&ascene=0&uin=MTA2ODMxMjkyOA%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11.3+build(15D21)&version=11020201&pass_ticket=2NltwMZVX94K1QpBtro2ILo7a9k1SoxiFANeVO9ZAFeAfLUpGKLsUkuTvMLyJnxZ

EM(期望最大化)聚类详细推导相关推荐

  1. R语言聚类算法之期望最大化聚类(Expectation Maximization Algorithm)

    1.原理解析: 它将数据集看作一个含有隐性变量的概率模型,并以实现模型最优化,即获取与数据本身性质最契合的聚类方式为目的,通过"反复估计"模型参数找到最优解,同时给出相应的最优类别 ...

  2. 【R】【密度聚类、层次聚类、期望最大化聚类】

    文章目录 1.对数据集进行加载.预处理集可视化 1.1 加载数据集 1.2 数据预处理 1.3 将样本点进行可视化 2.密度聚类(DBSCAN 算法) 2.1 加载程序包 2.2 设置聚类参数阈值并可 ...

  3. EM期望最大化算法实现二项混合分布与高斯混合分布

    EM(Expectation-maximization algorithm)译为期望最大化算法,EM算法是数据挖掘的十大算法之一,主要解决有隐含变量时,如何利用最大似然法求解未知参数.现实中会遇到多个 ...

  4. EM 期望最大化算法

    (EM算法)The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了. ...

  5. 【机器学习课程-华盛顿大学】:4 聚类和检索 4.4 MoG混合高斯模型和EM估计最大化

    1.k-means缺点 聚类的不确定性:有些模糊地带 因为是求点到中心的距离,所以k-means针对的是圆形的形状 但是对如下这些形状,做不到聚类: 2.提出基于概率的聚类模型 优点: (1)软分配, ...

  6. EM算法(期望最大化)详细推导

    版权声明:博主原创文章,转载请注明来源,谢谢合作!! https://blog.csdn.net/hl791026701/article/details/84641872 1.简介 期望最大化 (Ex ...

  7. EM(期望最大化)聚类算法详解

    参考:https://blog.csdn.net/eternity1118_/article/details/51516497 一.简介 之前介绍过K-Means聚类,尽管这个算法很常用,但可能会遇到 ...

  8. 【EM算法】期望最大化算法

    [摘要] EM(Expectation-Maximum)算法也称期望最大化算法,曾入选"数据挖掘十大算法"中,可见EM算法在机器学习.数据挖掘中的影响力.EM算法是最常见的隐变量估 ...

  9. EM算法(期望最大化算法)理论概述

    1.EM算法 1.1概述 EM(Expectation-Maximum)算法也称期望最大化算法,曾入选"数据挖掘十大算法"中,可见EM算法在机器学习.数据挖掘中的影响力.EM算法是 ...

最新文章

  1. C语言比较字符串长短
  2. 【服务器框架】(AsyncSelect模型、Windows平台)
  3. gpio的8种工作模式_【超低功耗系列一】STM32L 低功耗产品和模式
  4. 题目1251:序列分割(DFS+剪枝)
  5. Mac下使用ABTestingGateway快速搭建灰度网关
  6. 【公开课预告】:多媒体开源PI
  7. 批处理解决局域网共享打印机问题
  8. 自定义scoll样式
  9. oracle active data guard,Oracle Active DataGuard配置手册(一)
  10. 15款提高表格操作的jQuery插件
  11. socket编程持续交流java_socket编程的简单问题
  12. 大结局:GitHub正式归于微软旗下,新CEO下周一上任“三把火”
  13. python学习笔记 day33 ftp大作业(未完成)
  14. SOA架构设计的案例分析
  15. 面试精选-solr篇
  16. 【WINAPI】CreateSemaphore_信号量
  17. Ubuntu 18.04缺少libstdc++.so.6共享库解决方案
  18. 都快2021了,你还不知道怎么成为优秀程序员?大牛推荐6个软件开发步骤
  19. MySQL——IN的用法详解
  20. 【SUMO学习】初级 OSMWebWizard

热门文章

  1. linux邮件thunderbird,Ubuntu 18.04安装最新版Thunderbird 邮件客户端
  2. k8s部署jenkins和Pod始终为pending状态“persistentvolume-controller no persistent volumes available.....”解决办法
  3. Docker构建Mycat
  4. matlab三维显示圆锥,基于MATLAB和SOLIDWORKS的弧齿锥齿轮三维精确建模
  5. 单相交流线路与三相交流线路的区别
  6. ubuntu 安装新系统
  7. 码住!人工智能怎么影响教育?听这场直播就够了!
  8. undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::all
  9. L1-054 福到了 (15分) c++解法
  10. 大厂资深Python程序员透露,读完这本书,三个月后薪资可突破15K