emgaussmix.m

来自「这里包含了聚类的工具箱还有很详细的文档说明」· M 代码 · 共 27 行

M
27
字号
function [lambo,muo,varo] = emgaussmix(x,lambi,mui,vari)

[d,N] = size(x);
K = length(lambi);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Expectation-Maximization Algorithm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
papr = zeros(K,N);
for k = 1:K
    papr(k,:) = lambi(k)*gaussian(x,mui{k},vari{k});
end
papr = papr./(ones(K,1)*sum(papr,1));

for k = 1:K
    pri = papr(k,:);
    lambo(k) = 1/N*sum(pri)+eps;
    muo{k} = sum(x.*(ones(d,1)*pri),2)/sum(pri);
    X = x-muo{k}*ones(1,N);
    varo{k} = (X*diag(pri)*X')/sum(pri);
end

1;
%lambo = lambo/sum(lambo);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% End of EM algorithm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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