高斯模型matlab程序代码,我找到的高斯混合模型的代码
function [Alpha, Mu, Sigma] = GMM_EM(Data, Alpha0, Mu0, Sigma0)
%% EM迭代停止条件
loglik_threshold = 1e-10;
%%初始化参数
[dim, N] = size(Data);
M = size(Mu0,2);
loglik_old = -realmax;
nbStep = 0;
Mu = Mu0;
Sigma = Sigma0;
Alpha = Alpha0;
Epsilon = 0.0001;
while (nbStep < 1200)
nbStep = nbStep+1;
%% E-步骤%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:M
% PDF of each point
Pxi(:,i) = GaussPDF(Data, Mu(:,i), Sigma(:,:,i));
end
%计算后验概率beta(i|x)
Pix_tmp = repmat(Alpha,[N 1]).*Pxi;
Pix = Pix_tmp ./ (repmat(sum(Pix_tmp,2),[1 M])+realmin);
Beta = sum(Pix);
%% M-步骤%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:M
%更新权值
Alpha(i) = Beta(i) / N;
%更新均值
Mu(:,i) = Data*Pix(:,i) / Beta(i);
%更新方差
Data_tmp1 = Data - repmat(Mu(:,i),1,N);
Sigma(:,:,i) = (repmat(Pix(:,i)',dim, 1) .* Data_tmp1*Data_tmp1') / Beta(i);
%% Add a tiny variance to avoid numerical instability
Sigma(:,:,i) = Sigma(:,:,i) + 1E-5.*diag(ones(dim,1));
end
% %% Stopping criterion 1 %%%%%%%%%%%%%%%%%%%%
% for i=1:M
%Compute the new probability p(x|i)
% Pxi(:,i) = GaussPDF(Data, Mu(:,i), Sigma(i));
% end
%Compute the log likelihood
% F = Pxi*Alpha';
% F(find(F
% loglik = mean(log(F));
%Stop the process depending on the increase of the log likelihood
% if abs((loglik/loglik_old)-1) < loglik_threshold
% break;
% end
% loglik_old = loglik;
%% Stopping criterion 2 %%%%%%%%%%%%%%%%%%%%
v = [sum(abs(Mu - Mu0)), abs(Alpha - Alpha0)];
s = abs(Sigma-Sigma0);
v2 = 0;
for i=1:M
v2 = v2 + det(s(:,:,i));
end
if ((sum(v) + v2) < Epsilon)
break;
end
Mu0 = Mu;
Sigma0 = Sigma;
Alpha0 = Alpha;
end
nbStep麻烦大神帮忙看下,这个是我找到的高斯混合模型的代码, 但是上面%%% Stopping criterion 1 %%%%%%%%%%%%%%%%%%%% 及其以下代码, 前面应不应该加% 这个符号呢,文中是加了的,但是我觉得加了%不就成注释了?
高斯模型matlab程序代码,我找到的高斯混合模型的代码相关推荐
- 用matlab做单摆,单摆模型MATLAB程序
<单摆模型MATLAB程序>由会员分享,可在线阅读,更多相关<单摆模型MATLAB程序(2页珍藏版)>请在人人文库网上搜索. 1.Simple pendulum model%A ...
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型
DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:87140641990659957爱熬夜的程序猿
- DG储能选址定容模型matlab 程序采用改进粒子群算法
DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠编号:75140641990659957爱熬夜的程序猿
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠
DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 YID:87140641990659957爱熬夜的程序猿
- DG储能选址定容模型matlab程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠
DG储能选址定容模型matlab程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 ID:69140641990659957
- 含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法)
含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法) 参考文献:含分布式电源的配电网日前两阶段优化调度模型 摘要:在电力市场环境下,供电公司通过对接入配电网的分布式电源(distrib ...
- 【opencv】(11) 背景建模,帧差法、混合高斯模型,实战:行人检测,附python完整代码和数据集
各位同学好,今天和大家分享一下opencv背景建模相关操作.主要介绍两种背景建模方法,帧差法和混合高斯模型. 案例简介:现有一份路口摄像机拍摄的行人流视频,通过背景建模方法,区分背景和前景,完成行人识 ...
- 混合高斯模型的基本原理,以及通过混合高斯模型进行背景建模的基本思想
混合高斯模型的基本原理,以及通过混合高斯模型进行背景建模的基本思想 混合高斯模型的基本原理 虽然是背景,但是灰度并不是一直保持不变的,灰度是在一个范围内变化的.一个背景像素随着时间变化呈现一定的随机性 ...
- 最小二乘模型 matlab程序,我提供给大家一个偏最小二乘法的代码
下面是一个偏最小二乘法的完整代码,就是结果不尽如人意,望高人指点一二! 实测数据矩阵: X = [ 30 405 1.5 47.5 40 435 3.0 45.0 50 465 1.0 42.5 60 ...
- cir模型matlab代码,CIR模型MATLAB程序
运用MATLAB的好方法 MAXIMUMLIKELIHOODESTIMATIONOFTHECOX-INGERSOLL-ROSSPROCESS:THEMATLAB IMPLEMENTATION Kami ...
最新文章
- php fopen 中文,php fopen用法是什么
- hdu3342 拓扑序
- python 中的for i in range()的使用(for _ in range())
- start与run的区别
- 点击屏幕触发_MAC值得吹爆的便捷「触发角」功能
- linux格式化该新添加的分区,Linux下添加新硬盘及分区格式化要点
- 【转】WebSocket初探
- hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2
- MYSQL 数据库创建,修改等知识整理
- 在HTML中禁止IE缓存
- 抽象类和接口的异同点
- 服务器装win10稳定吗,win10哪个版本最稳定好用 目前win10最稳定的版本推荐
- python windows api截图_Python调用windows API实现屏幕截图
- (QT)qss与按钮
- csapp炸弹实验_bomb_lab详解
- 数据探索简介——质量分析、特征分析
- SPARQL入门(一)SPARQL简介与简单使用
- 购买服务器虚拟主机,购买服务器与虚拟主机
- cocos2dx 背包界面的实现
- 清华大学推荐人工智能A类B类期刊与会议汇总!!!发论文必备