高斯混合概率在众多领域都有重要应用,依据已知观测数据估计高斯模型中未知参数就显得尤为重要,由于观测值具体来自于高斯分布的哪个分模型是未知的,那么利用传统的极大似然( MLE) 方法进行参数估计就变得十分困难。引入 EM 算法,该方法通过构造分布已知的潜变量对模型进行参数估计,经过多次迭代优化可以使估计值逐渐逼近真实值。本文主要复现该篇文章的实证部分~

目录

  • 一、复现内容
  • 二、复现代码

一、复现内容

二、复现代码

alpha_1<-0.5
alpha_2<-0.5
mu_1<-0.36
mu_2<-0.25
sigma_1<-1.4
sigma_2<-1.3fi<-function(x,mu,sigma){y<-1/(sqrt(2*pi)*sigma)*exp(-(x-mu)**2/(2*sigma**2))return(y)
}x<-c(0.900,-2.618,1.235,-0.382,0.850,0.443,0.444,0.185,1.502,1.071)gauss_em<-function(x,alpha,mu,sigma){z<-alpha*fi(x,mu,sqrt(sigma))/(alpha_1*fi(x,mu_1,sqrt(sigma_1))+alpha_2*fi(x,mu_2,sqrt(sigma_2)))mu<-sum(z*x)/sum(z)sigma<-sum(z*((x-mu)**2))/sum(z)alpha<-mean(z)  parms<-list(alpha,mu,sigma)return(parms)
}gauss_em(x,alpha_1,mu_1,sigma_1)
gauss_em(x,alpha_2,mu_2,sigma_2)alpha1_vec<-c()
alpha2_vec<-c()
mu1_vec<-c()
mu2_vec<-c()
sigma1_vec<-c()
sigma2_vec<-c()for(i in 1:20){result_1<-gauss_em(x,alpha_1,mu_1,sigma_1)result_2<-gauss_em(x,alpha_2,mu_2,sigma_2)alpha_1<-result_1[[1]]mu_1<-result_1[[2]]sigma_1<-result_1[[3]]alpha_2<-result_2[[1]]mu_2<-result_2[[2]]sigma_2<-result_2[[3]]alpha1_vec<-c(alpha1_vec,alpha_1)alpha2_vec<-c(alpha2_vec,alpha_2)mu1_vec<-c(mu1_vec,mu_1)mu2_vec<-c(mu2_vec,mu_2)sigma1_vec<-c(sigma1_vec,sigma_1)sigma2_vec<-c(sigma2_vec,sigma_2)}em_rst<-data.frame(alpha1_vec,alpha2_vec,mu1_vec,mu2_vec,sigma1_vec,sigma2_vec)
em_rstplot_rst<-function(x,xlab,title){plot(1:20,x,type='o',xlab=xlab,main=title,xaxt='n',col='red')axis(1,1:20)
}par(mfrow=c(2,3))
params_names<-c("alpha1","alpha2","mu1","mu2","sigma1","sigma2")
params_list<-list(alpha1_vec,alpha2_vec,mu1_vec,mu2_vec,sigma1_vec,sigma2_vec)for(i in 1:length(params_list)){plot_rst(params_list[[i]],params_names[i],paste0('EM算法——',params_names[i],'迭代趋势'))
}


注意:论文表格中的 σ\sigmaσ 和 μ\muμ 标记反了!

参考文章:
[1]梁盛楠.基于EM算法的高斯混合模型参数估计[J].黔南民族师范学院学报,2020,40(04):5-8.

论文R语言复现 | 基于 EM 算法的高斯混合模型参数估计相关推荐

  1. 基于EM算法的高斯混合模型参数估计

    一 算法思想 对于样本数据集所含变量都是可观测的,我们一般应用极大似然估计法或者贝叶斯估计法估计模型参数.但若样本数据集中存在不可观测的变量(隐变量),那么单纯的极大似然估计法是不可用的:EM算法(e ...

  2. 机器学习教程 之 EM算法 :高斯混合模型聚类算法 (python基于《统计学习方法》实现,附数据集和代码)

    之前写过一篇博客讲述极大似然方法, 这一方法通常适用于知道观测数据 Y Y Y,求解模型参数 θ \theta θ的场合,即 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ). 但是,在更 ...

  3. 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结

    文章目录 一.总结K均值算法步骤 二.如何合理选择K值? 三.K均值算法的优缺点是什么? 四.如何对K均值算法进行调优? 五.EM算法解决什么问题? 六.EM算法流程是什么? 六.EM算法能保证收敛嘛 ...

  4. EM算法在高斯混合模型学习中的应用

    本篇文章是之前期望极大算法(EM算法)文章的后续,有需要可以先看看那篇文章关于EM算法的推导. 高斯混合模型 高斯混合模型是研究算法的人避不开的一个东西,其在非深度学习的远古时代经常被用到,比如图像处 ...

  5. 采用EM算法对高斯混合模型(GMM)进行参数估计

    介绍一个EM算法的应用例子:高斯混合模型参数估计. 高斯混合模型 高斯混合模型(Gaussian Mixture Model, GMM)是由多个高斯分布组成的模型,其密度函数为多个高斯密度函数的加权组 ...

  6. matlab删失数据威布尔,随机删失数据下基于EM算法的Weibull分布参数估计

    1引言生存数据分析的统计方法在生物医学和可靠性研究中,甚至在犯罪学.社会学.市场学以及健康保险领域的研究中,有重要的应用.但是,在生存数据的观测中常常由于动物的意外死亡.被调查者拒绝回答有关调查项目. ...

  7. EM算法及高斯混合模型GMM详述

    1.最大似然估计 最大似然估计(Maximum Likelihood Estimation,MLE)就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程.直白来讲,就是给定了 ...

  8. python概率密度函数参数估计_EM算法求高斯混合模型参数估计——Python实现

    #coding:gbk import math import copy import numpy as np import matplotlib.pyplot as plt isdebug = Fal ...

  9. em算法python代码_EM 算法求解高斯混合模型python实现

    注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...

最新文章

  1. TCP/IP拥塞控制复习
  2. 向量笛卡尔积_如何创建向量的矢量的笛卡尔积?
  3. FlexiBO:基于成本感知的深度神经网络多目标优化
  4. BugKuCTF 杂项 隐写2
  5. 问题 F: 序列操作Ⅱ(前缀最大公约数,后缀最大公约数)
  6. 使用各类BeanUtils的时候,切记注意这个坑!
  7. 第四届CocoaChina开发者大会官网上线
  8. hyperion卫星重访时间_观摩卫星发射|2020第四届全球物联网大会上让我们一起去“放星”...
  9. java程序示例_Java程序中的Google搜索示例
  10. Filebeat 5.x 日志收集器 安装和配置
  11. 51 Nod 1005 大数加法【Java大数乱搞,python大数乱搞】
  12. 【离散数学】【图论】哈密顿图
  13. 使用APICloud AVM多端组件快速实现app中的搜索功能
  14. 《java程序设计基础》使用Reader和Writer流类
  15. 将m个相同的球全部放到n个相同的盒子里面有几种放法,盒子不能为空
  16. Go 基础(二)关键字和代码注释
  17. 一个千兆电口和自协商的问题
  18. 模糊控制在matlab中常见的疑难问题及模糊逻辑工具箱的使用
  19. GeneXus学习记录——环境搭建
  20. SSL/TLS连接建立过程

热门文章

  1. True Nobility(《真正的高贵》)By Ernest Hemingway(海明威)
  2. 如何将编码转为自己想要的编码 -- gbk utf-8
  3. python 提取网页正文_小苹果来科普 | 关于python爬虫的那些事儿
  4. 心灵鸡汤 - fifth (5th)
  5. 阿里B2B总裁戴珊:全球化的天猫双11,普惠全球共享快乐
  6. 虚幻商城Simple UDP TCP Socket Client的使用方式
  7. 服务器数据盘与系统盘做raid,服务器做Raid盘阵列和Raid磁盘阵列区别和优势
  8. 第五届全球游戏开发者大会暨天府奖盛典18日盛大开幕
  9. 关于tomcat的内存参数优化——如何配置catalina.sh的JAVA_OPTS?
  10. 单片机 c语言怎么写一个简易秒表?用一个键盘按键开始暂停的,51单片机秒表计时器课程设计报告(含C语言程序)...