01|概念及原理:

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代分两步完成:E步,求期望(expectation);M步,求极大值(maximization).所以这一算法称为期望极大算法,简称EM算法。(你看懂了吗?反正我第一次看是一脸懵。没关系接下来通过一个例子,你就能明白了。)

(三硬币模型)  假设有A,B,C这些硬币正面出现的概率分别是π,p和q。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果出现正面记作1,出现反面记作0;独立重复n次试验(这里n=10),观测结果如下:1,1,0,1,0,0,1,0,1,1

假设只能看到掷硬币的结果,不能观测掷硬币的过程,问如何估计三硬币正面出现的概率,即三硬币的模型参数(即π,p和q),求解这个模型参数的过程就是EM算法,也可以说是EM算法的目的就是求取这个模型的最大化参数。(硬币A出现的结果就是隐变量)

下图中红色问号就是一个隐变量,在整个过程中我们是看不到A的结果,我们只能看到最后红色1的结果,而我们现在要做的就是通过红色1的结果去求取A、B、C正面出现的概率。求取的原则是使A、B、C的概率最大化,求取的方法是不停迭代(也就是不停地试),直到概率最大为止。

本图来源于:http://blog.csdn.net/sajiahan/article/details/53106642

02|数学推导:

一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z在一起称为完全数据,观测数据Y又称为不完全数据。假设给定观测数据Y,其概率分布是P(Y|θ),其中θ是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y|θ),对数似然函数L(θ)=logP(Y|θ);假设Y和Z的联合概率分布是P(Y,Z|θ),那么完全数据的对数似然函数是logP(Y,Z|θ)。

03|算法步骤:

EM算法就是通过迭代求L(θ)=logP(Y|θ)的极大似然估计。

EM算法步骤的第一步就是设定一个参数初值,这是人为设定的,这个值将会影响后续的参数迭代。

Q函数:

Q函数其实就是L(θ),也就是EM算法其实就是求取Q函数的极大值。

04|EM算法的应用:

EM算法常用在非监督学习问题中,即训练数据只有输入没有对应的输出。EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。X为观测数据,Y为未观测数据。

机器学习第七篇:详解EM算法相关推荐

  1. 详解EM算法与混合高斯模型(Gaussian mixture model, GMM)

    最近在看晓川老(shi)师(shu)的博士论文,接触了混合高斯模型(Gaussian mixture model, GMM)和EM(Expectation Maximization)算法,不禁被论文中 ...

  2. 详解EM算法与混合高斯模型

    https://blog.csdn.net/lin_limin/article/details/81048411 https://blog.csdn.net/jinping_shi/article/d ...

  3. R语言机器学习之caret包详解(一)

    R语言机器学习caret包trainControl函数详解 R语言机器学习之caret包详解(一) 简介 数据预处理 各种数据变换 近零方差变量 创建虚拟变量 重抽样技术 k折交叉验证 留一交叉验证 ...

  4. 详解线性回归算法的纯Python实现

    ↑↑↑关注后"星标"简说Python人人都可以简单入门Python.爬虫.数据分析 简说Python推荐 来源|天池大数据科研平台作者|黄佳 零基础学机器学习--一文详解线性回归算 ...

  5. 基于spark mllib_Spark高级分析指南 | 机器学习和分析流程详解(下)

    - 点击上方"中国统计网"订阅我吧!- 我们在Spark高级分析指南 | 机器学习和分析流程详解(上)快速介绍了一下不同的高级分析应用和用力,从推荐到回归.但这只是实际高级分析过程 ...

  6. 【算法知识】详解堆排序算法

    点击蓝色字关注我们! 什么是堆 「堆」首先是一个完全二叉树,「堆」分为「大顶堆」和「小顶堆」: 「大顶堆」 : 每个节点的值大于或等于其左右孩子节点的值,称为大顶堆. 「小顶堆」同理就是每个节点的值小 ...

  7. 【算法知识】详解基数排序算法

    已发布: [算法知识]详解选择冒泡算法 [算法知识]详解选择排序算法 [算法知识]详解插入排序算法 [算法知识]详解快速排序算法 [算法知识]详解归并排序算法 基本思想 基数排序的思想是将整数按位数切 ...

  8. 【算法知识】详解归并排序算法

    已发布: [算法知识]详解选择冒泡算法 [算法知识]详解选择排序算法 [算法知识]详解插入排序算法 [算法知识]详解快速排序算法 基本思想 归并排序的基本思想是: 先将序列一次次分成子序列,直到子序列 ...

  9. 【算法知识】详解快速排序算法

    基本思想 已发布: [算法知识]详解选择冒泡算法 [算法知识]详解选择排序算法 [算法知识]详解插入排序算法 本文的思路是以从小到大为例讲的. 快速排序的基本思想是任取待排序序列的一个元素作为中心元素 ...

最新文章

  1. vue 公用页面引用_vue中实现部分页面引入公共组件
  2. 【转】关闭特定虚拟机上声音嘟嘟声
  3. JDK 14 调试神器了解一下?
  4. 【C】strcpy()需谨慎使用;
  5. 非对称加密算法 --- RSA签名算法
  6. python爬取酷狗音乐top500_python获取酷狗音乐top500的下载地址 MP3格式
  7. 一个优秀的公司如何才能成为一个卓越的公司?
  8. 常用数据结构有哪些(转)
  9. linux hping3命令,系列H - hping3 - 测试网络及主机的安全 - 《Linux命令大全》 - 技术池(jishuchi.com)...
  10. Java中文(汉子)转换拼音
  11. 串口转以太网产品选型指南
  12. 条形码生成软件如何设置条形码数据的字号大小
  13. 计算机顶级会议Rankings 英文投稿的一点经验
  14. 用文氏图来理解卷积神经网络如何决定提取哪些特征
  15. Hadoop大数据原理(2) - 分布式文件系统HDFS
  16. r55600h和i511320h哪个好
  17. 阿尔法编程python答案_C语言程序设计-阿尔法编程(编程答案)
  18. 【技术邻】基于DynaForm的多工步连续模(级进模)分析实例
  19. Python IO编程详解
  20. 如何高效管理电脑里的文件

热门文章

  1. ORA-12170:TNS:连接超时
  2. 爬取json Swaggerui界面
  3. sql 语言中 when case 用法
  4. CSS/Compass修改placeholder的文字样式
  5. 常见工具:dp与px互转,屏幕宽度与高度获取
  6. 忘记redhat linux root密码怎么办
  7. 【闲聊产品】之七:投票真的有用么?
  8. WordPress 自定义插件初始化及卸载
  9. [self Introduce]MY job pic
  10. 接口隔离原则——面向对象设计原则