⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 estep.m

📁 混合高斯模型 对于给定的数据
💻 M
字号:
function [mixture1 likelihood] = EStep(mixture, pixels)
% EStep     perform the E-step of the EM algorithm
%        1) calculate pnk = Prob(Xn=k|Yn=yn, theta)
%        2) calculate likelihood = log ( prob(Y=y|theta) )

   [N M] = size(pixels);
   K=mixture.K;
   pnk=zeros(N,K);            
   for k=1:K
      Y1=pixels-ones(N,1)*mixture.cluster(k).mu';
      Y2=-0.5*Y1*mixture.cluster(k).invR;
      pnk(:,k) = dot(Y1,Y2,2)+mixture.cluster(k).const;
   end
   llmax=max(pnk,[],2);
   pnk =exp( pnk-llmax*ones(1,K) );
   pnk = pnk.*(ones(N,1)*[mixture.cluster(:).pb]);
   ss = sum(pnk,2);
   likelihood = sum(log(ss)+llmax);
   pnk = pnk./(ss*ones(1,K));   % compute the posterior probability for each class for all pixels
   mixture1 = mixture;
   mixture1.pnk = pnk;
   
   
%    function ll = loglike(yn, cluster)
%       Y = yn-cluster.mu;
%       ll = -0.5*Y'*cluster.invR*Y+cluster.const;
%    end
% 
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -