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

📄 partial_emsteps.m

📁 greedy em 混和模型训练算法
💻 M
字号:
%%%% Perform partial EM steps with initial values           %%%%%
%%%% for a' & theta calculated from candidate_selection     %%%%%
%%%%                                                        %%%%%
%%%%%% Kostas Blekas, 19 Dec. 2001                          %%%%%
%%%%%% please contact at kblekas@cc.uoi.gr in case of problems %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [new_a,new_mpr,parL] = partial_EMsteps(mpr_init,fi,thesh,a,n,L,W,stopem,maxstep,new_seq,alpha)

for j=1:n
    for t=1:W
        sp(t) = mpr_init(thesh(j,t),t);
    end 
    new_fi(j) = prod(sp);
end

parL_new = sum(log((1-a) .* fi + a .* new_fi));
parL = 0.01 * parL_new;
step_em = 1;

c_mot = ones(L,W);

while ( (abs(parL_new/parL - 1.000) > stopem) & (step_em<maxstep) )
   parL = parL_new;
   Znew = (new_fi .* a) ./ (fi .* (1-a) + new_fi .*a);
   a = sum(Znew)/n;

   for i=1:W
       for j=1:L
           c_mot(j,i) = sum(Znew(find(new_seq(:,i)==alpha(j))));
       end
       mpr_init(:,i) = c_mot(:,i) ./ sum((c_mot(:,i)));
   end

   for i=1:n
       for j=1:W
           sp(j)=mpr_init(thesh(i,j),j);
       end
       new_fi(i) = prod(sp);
   end
   parL_new = sum(log(fi .* (1-a) + new_fi .* a));
   step_em = step_em + 1;
end 
fprintf('Running partial_EM steps and obtain par_LogL = %f) \n',parL_new);    
new_a = a;
parL = parL_new;
new_mpr = mpr_init;

⌨️ 快捷键说明

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