一、最大期望(EM)算法:

EM算法是在依赖于无法观测的隐藏变量的概率模型中,寻找参数最大似然估计或者最大后验估计的算法。

二、最大期望算法的两个步骤:

第一步是计算期望(E),利用概率模型参数的现有估计值,计算隐藏变量的期望。

第二步是最大化(M),利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计,M 步上找到的参数估计值被用于下一个 E 步计算中,这两个过程不断交替进行。

三、EM算法流程:

1.初始化分布参数

2.重复直到收敛

四、

例子: 模拟两个正态分布的均值估计

由于我们使用的是高斯分布,即p服从高斯分布。在上述M-step中,我们要最大化如下式子:

这里的θ是我们要估计的均值。

然后对这个求导:

代码:

#模拟两个正态分布的均值估计
from numpy import *
import numpy as np
import random
import copySIGMA = 6
EPS = 0.0001
#生成方差相同,均值不同的样本
def generate_data():Miu1 = 20Miu2 = 40N = 1000X = mat(zeros((N,1)))for i in range(N):temp = random.uniform(0,1)if(temp > 0.5):X[i] = temp*SIGMA + Miu1else:X[i] = temp*SIGMA + Miu2return X#EM算法
def my_EM(X):k = 2N = len(X)Miu = np.random.rand(k,1)Posterior = mat(zeros((N,2)))dominator = 0numerator = 0#先求后验概率for iter in range(1000):for i in range(N):dominator = 0for j in range(k):dominator = dominator + np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)#print dominator,-1/(2*SIGMA**2) * (X[i] - Miu[j])**2,2*SIGMA**2,(X[i] - Miu[j])**2#returnfor j in range(k):numerator = np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)Posterior[i,j] = numerator/dominatoroldMiu = copy.deepcopy(Miu)#最大化for j in range(k):numerator = 0dominator = 0for i in range(N):numerator = numerator + Posterior[i,j] * X[i]dominator = dominator + Posterior[i,j]Miu[j] = numerator/dominatorprint (abs(Miu - oldMiu)).sum()#print '\n'if (abs(Miu - oldMiu)).sum() < EPS:print Miu,iterbreakif __name__ == '__main__':X = generate_data()my_EM(X)

转载自:https://blog.csdn.net/u010866505/article/details/77877345

最大期望(EM)算法相关推荐

  1. 机器学习基础专题:高斯混合模型和最大期望EM算法以及代码实现

    高斯混合模型 混合模型是潜变量模型的一种,是最常见的形式之一.而高斯混合模型(Gaussian Mixture Models, GMM)是混合模型中最常见的一种.zzz代表该数据点是由某一个高斯分布产 ...

  2. em算法详细例子及推导_EM算法详解(例子+推导)

    一. 例子讲解 假设有两个硬币1和2,随机抛出后出现正面概率为 . .每次取一枚银币,连续抛5次,共抛5轮,数据如下: 硬币1-->(3正2反):硬币2-->(2正3反):硬币3--> ...

  3. 概率语言模型及其变形系列-PLSA及EM算法

    转载自:http://blog.csdn.net/yangliuy/article/details/8330640 本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA.LDA及LDA的变形模 ...

  4. EM算法(Expectation Maximization)期望最大化算法

    原文:EM(期望最大化)算法初步认识 - 大数据和AI躺过的坑 - 博客园 https://www.cnblogs.com/zlslch/p/6965374.html 机器学习十大算法之一:EM算法( ...

  5. 期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用

    期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用 EM的应用 EM算法有很多的应用,最广泛的就是GMM混合高斯模型.聚类.HMM等等.具体可以参考Jerry ...

  6. EM 期望最大化算法

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

  7. 期望最大化(EM)算法真如用起来那么简单?

    声明:本文改编自订阅号"夕小瑶的卖萌屋"中的 <机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)>.<机器学习系列-强填EM算法在理论与工程之间的鸿沟(下) ...

  8. 最大期望算法 (EM算法)

    注:文章出处:https://www.cnblogs.com/yahokuma/p/3794905.html 算法定义 最大期望算法(Exception Maximization Algorithm, ...

  9. NLP --- 隐马尔可夫HMM(EM算法(期望最大化算法))

    期望最大化 (Expectation Maximization) 算法最初是由 Ceppellini[2] 等人 1950 年在讨论基因频率的估计的时候提出的.后来又被 Hartley[3] 和Bau ...

  10. EM算法·最大期望算法

    EM算法,称为期望-最大化,它用于求解MLE的一种迭代算法 它的主要思想是把一个难于处理的似然函数最大化问题用一个易于最大化的序列取代,而其极限是原始问题的解 EM算法分为两个步骤:E步求期望,对隐变 ...

最新文章

  1. ubuntun_11.04安装
  2. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  3. 中文语音情感识别python实现(一)
  4. Apache Camel –从头开始开发应用程序(第1部分/第2部分)
  5. 替代JavaOne 2013
  6. Android 命名规范 (提高代码可以读性) 转
  7. hallo world
  8. 如何提升微服务的幸福感 | 凌云时刻
  9. 安装mathtype打开word报错 mathtype.Dll cannot be found 解决方式
  10. 微PE系统盘制作 / 重装系统
  11. 约瑟夫环问题:有n个人围成一圈,顺序编号。从第1个人开始报数(从1-3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?
  12. Linux 路由表和静态路由
  13. 文字直接转语音,一直都这么简单!
  14. java炸包_Java 包(package)
  15. CRM一站式管理,助力健身会所C位出道!
  16. 第二类换元法倒代换专项训练
  17. 图书管理系统之DAO设计与实现
  18. 套用bi模板,轻松搞定各类数据分析报表
  19. Android音视频——MediaPlayerService
  20. ckeditor4 +Wiris MathType + Mathjax 渲染 + Tax 公式编辑

热门文章

  1. 【JAVA】MyEclipse 各菜单项:功能、说明(转自CSDN - lgx06)
  2. 【mysql】mysql使用
  3. Android自定义权限CVE漏洞分析 (IEEE论文)
  4. Python_Task09:文件与文件系统
  5. 数据结构之树从入门到如土(一)----大话二叉树 及GO实现
  6. nib和itk读取nii数据的差异——一个自己调了半天的bug复盘
  7. 五分钟通俗理解自动驾驶
  8. 继续教育计算机网络基础答案,2017中国石油大学继续教育计算机网络基础答案.docx...
  9. 一起看TV:在电视上怎么下载软件?两个办法教你有效安装
  10. win10隐藏recovery盘