MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)
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”函数拟合高斯混合模型(一维数据)的更多相关文章
- 高斯混合模型(GMM)及MATLAB代码
之前在学习中遇到高斯混合模型,卡了很长一段时间,在这里记下学习中的一些问题以及解决的方法.希望看到这篇文章的同学们对高斯混合模型能有一些基本的概念.全文不废话,直接上重点. 本文将从以下三个问题详解高 ...
- CS229 Lesson 13 高斯混合模型
课程视频地址:http://open.163.com/special/opencourse/machinelearning.html 课程主页:http://cs229.stanford.edu/ 更 ...
- matlab函数拟合
1 函数拟合 函数拟合在工程(如采样校正)和数据分析(如隶属函数确定)中都是非常有用的工具.我这里将函数拟合分为三类:分别是多项式拟合,已知函数类型的拟合和未知函数类型的拟合.matlab中关于函数的 ...
- 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 ...
- 高斯混合模型(GMM)
复习: 1.概率密度函数,密度函数,概率分布函数和累计分布函数 概率密度函数一般以大写“PDF”(Probability Density Function),也称概率分布函数,有的时候又简称概率分布函 ...
- MATLAB中“fitgmdist”的用法及其GMM聚类算法
MATLAB中“fitgmdist”的用法及其GMM聚类算法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 高斯混合模型的基本原理:聚类——GMM,MA ...
- 高斯混合模型(理论+opencv实现)
查资料的时候看了一个不文明的事情,转载别人的东西而不标注出处,结果原创无人知晓,转载很多人评论~~标注了转载而不说出处这样的人有点可耻! 写在前面: Gaussian Mixture Model (G ...
- 聚类之高斯混合模型(Gaussian Mixture Model)【转】
k-means应该是原来级别的聚类方法了,这整理下一个使用后验概率准确评测其精度的方法—高斯混合模型. 我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussia ...
- SIGAI机器学习第二十三集 高斯混合模型与EM算法
讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...
随机推荐
- 小记centos7.5下yum安装cobbler遇到的问题
问题1:执行cobbler sync同步命令报错,提示dhcpd服务错误和Python源码错误 [root@server ~]# cobbler sync #<===执行cobbler同步的时候 ...
- vertical-align和line-height的理解及实例
line-height 字符实际大小和font-size的关系: 下图中不同字体font-size都是100px 测量了一下每个 span 的高度:Helvetica 115px,Gruppo 97p ...
- Redis 为什么这么快?
1. 纯内存操作,肯定快 数据存储在内存中,读取的时候不需要进行磁盘的 IO 2. 单线程,无锁竞争损耗 单线程保证了系统没有线程的上下文切换 使用单线程,可以避免不必要的上下文切换和竞争条件,没有多 ...
- CSS中的圣杯布局与双飞翼布局
一,圣杯布局 1,什么是圣杯布局? 所谓圣杯布局就是用于实现一个两侧宽度固定,中间宽度自适应的三栏布局 2,构建圣杯布局的步骤: 2.1,添加一个容器,在这个容器中添加放三个盒子(左.中.右): 2. ...
- TortoiseGit 绑定 GitHub/Gitee ssh秘钥
小乌龟生成私钥和公钥 打开PuTTYgen 生成公钥/私钥文件 打开Pageant添加私钥.ppk文件 打开公钥文件获取key 打开GitHub/Gitee添加公钥 Gitee GitHub
- Linux报错:rm: cannot remove 'xxx': Is a directory
rm: cannot remove 'xxx': Is a directory表示这个文件是无法remove移除的,因此我们不能仅使用rm来将这个文件夹进行删除,需要使用: rm -rf 命令则可以将 ...
- 非常简洁简单的tcp socket库 XKSocket
一个非常简洁简单的异步tcp socket库,主要就是分包的问题,处理组包,粘包等问题 非常适合新手:) 项目中带有使用示例. http://git.oschina.net/dreamzgj/XKSo ...
- Vue中import from的来源--省略后缀与加载文件夹
Vue使用import ... from ...来导入组件,库,变量等.而from后的来源可以是js,vue,json.这个是在webpack.base.conf.js中设置的: module.exp ...
- IDEA创建mybatisDemo,并实现简单的CRUD
Mybatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.在Java或者Java Web项目中,添加Mybatis必须的核心包,就能对数据表进行增删改查操作了.下面以MySQL数据库o ...
- C#在屏幕画点
Graphics类没有提供直接画点的方法,最开始想使用填充圆形区域來实现,结果发现点很大,占据了4个像素.使用起点和终点一样来划线什么也没画出.画矩形,画椭圆都没实现.最后试到填充矩形,这次成功了. ...