MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

MATLAB中“fitgmdist”的用法及其GMM聚类算法中介绍过"fitgmdist"函数的用法,这次用"fitgmdist"拟合一维数据。

1. 一维高斯混合数据的产生

function data=generate_GMM()
%前两列是数据,最后一列是类标签
%数据规模
N=300;
%数据维度
% dim=1;
%%
%混合比例
para_pi=[0.3 0.2 0.5];
%第一类数据
mul=0; % 均值
S1=1; % 协方差
data1=mvnrnd(mul, S1, para_pi(1)*N); % 产生高斯分布数据
%第二类数据
mu2=4;
S2=2;
data2=mvnrnd(mu2,S2,para_pi(2)*N);
%第三类数据
mu3=-4;
S3=1;
data3=mvnrnd(mu3,S3,para_pi(3)*N);
data = [data1, ones(para_pi(1)*N,1); data2, 2*ones(para_pi(2)*N,1); data3, 3*ones(para_pi(3)*N,1)];
save data_gauss data

2. 拟合高斯混合模型

load data_gauss
data=data(:,1);
K=3;
gmm=fitgmdist(data, K);
% 自定义参数
% RegularizationValue=0.001; %正则化系数,协方差矩阵求逆
% MaxIter=1000; %最大迭代次数
% TolFun=1e-8; %终止条件
% gmm=fitgmdist(data, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'diagonal', 'Start', 'plus', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
[N, D]=size(data);
mu=gmm.mu; %均值
Sigma=gmm.Sigma; %协方差矩阵
ComponentProportion=gmm.ComponentProportion; %混合比例
Y=zeros(N, K);
for k=1:K
Y(:,k)=ComponentProportion(k).*normpdf(data, mu(k), Sigma(:,:,k));
end
YY=sum(Y, 2);
plot(data,YY,'r.')

3. 结果

4. 参考

[1] MATLAB高斯混合数据的生成

[2] MATLAB中“fitgmdist”的用法及其GMM聚类算法

MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)的更多相关文章

  1. 高斯混合模型(GMM)及MATLAB代码

    之前在学习中遇到高斯混合模型,卡了很长一段时间,在这里记下学习中的一些问题以及解决的方法.希望看到这篇文章的同学们对高斯混合模型能有一些基本的概念.全文不废话,直接上重点. 本文将从以下三个问题详解高 ...

  2. CS229 Lesson 13 高斯混合模型

    课程视频地址:http://open.163.com/special/opencourse/machinelearning.html 课程主页:http://cs229.stanford.edu/ 更 ...

  3. matlab函数拟合

    1 函数拟合 函数拟合在工程(如采样校正)和数据分析(如隶属函数确定)中都是非常有用的工具.我这里将函数拟合分为三类:分别是多项式拟合,已知函数类型的拟合和未知函数类型的拟合.matlab中关于函数的 ...

  4. matlab多项式拟合以及指定函数拟合

    clc;clear all;close all;%% 多项式拟合指令:% X = [1 2 3 4 5 6 7 8 9 ];% Y = [9 7 6 3 -1 2 5 7 20]; % P= poly ...

  5. 高斯混合模型(GMM)

    复习: 1.概率密度函数,密度函数,概率分布函数和累计分布函数 概率密度函数一般以大写“PDF”(Probability Density Function),也称概率分布函数,有的时候又简称概率分布函 ...

  6. MATLAB中“fitgmdist”的用法及其GMM聚类算法

    MATLAB中“fitgmdist”的用法及其GMM聚类算法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 高斯混合模型的基本原理:聚类——GMM,MA ...

  7. 高斯混合模型(理论+opencv实现)

    查资料的时候看了一个不文明的事情,转载别人的东西而不标注出处,结果原创无人知晓,转载很多人评论~~标注了转载而不说出处这样的人有点可耻! 写在前面: Gaussian Mixture Model (G ...

  8. 聚类之高斯混合模型(Gaussian Mixture Model)【转】

    k-means应该是原来级别的聚类方法了,这整理下一个使用后验概率准确评测其精度的方法—高斯混合模型. 我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussia ...

  9. SIGAI机器学习第二十三集 高斯混合模型与EM算法

    讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...

随机推荐

  1. golang-练习ATM --面向对象实现

    package utils import ( "fmt" "strings" ) type StructAtm struct { action int loop ...

  2. pretty-errors:美化python异常输出以使其清晰易读

    1. 安装pretty-errors python -m pip install pretty_errors 2.如果你想让你的每一个程序都能这样在报错时也保持美貌,那么运行下面这这行命令,就不用每次 ...

  3. MySQL 数据库的提速器-写缓存(Change Buffer)

    写缓存(Change Buffer) 是一种特殊的数据结构,用于在对数据变更时,如果数据所在的数据页没有在 buffer pool 中的话,在不影响数据一致性的前提下,InnoDB 引擎会将对数据的操 ...

  4. Winfrom 减少控件重绘闪烁的方法

    Winform控件的双缓冲.控件的双缓冲属性是隐藏的,可以通过反射改变其属性值. lv.GetType().GetProperty("DoubleBuffered", Bindin ...

  5. 11种常用css样式之background学习

    background如何简写?如何在背景图像不变的情况下,依旧实现页面文字滚动,为之奈何?别担心,快用background-attachment: fixed;/*固定定位*/常用的backgroun ...

  6. windows7安装.NET Framework 4.5.2 框架(迅雷下载链接)

    .NET Framework 4.5.2 框架 数据库安装windows7安装mysql时需要 迅雷下载链接: https://download.microsoft.com/download/E/2/ ...

  7. 0x01 C语言-编写第一个hello world

    学习每一个编程语言都是从 "Hello world!" 开始的,这好像就是编程界一条不成文的规定一样. 在这篇文章中,我将教大家编写一个可以输出 "Hello world ...

  8. PHP0021:PHP COOKIE 设置修改删除

  9. Django---Django连接Mysql数据库

    前面介绍了Django平台的数据交互,这些数据都是在本地存放着,修改内容或者重新启动服务,数据就消失了,如果我们把数据存放在数据库中,不就保存了吗? Django数据库 Django中自带的也有数据库 ...

  10. linux命令绕过

    前言: 做ctf时常常会遇到一些正则匹配将一些linux命令给过滤掉,这里将总结一些针对性的绕过方式. 一.空格绕过: {cat,flag.txt} cat${IFS}flag.txt cat$IFS ...