Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [p1,p2,m1,sig1,m2,sig2,history] = calc_SEM(Y,p10,p20,m10,sig10,m20,sig20,nb_iterSEM,classe)
- %CALC_SEM Summary of this function goes here
- % Detailed explanation goes here
- p1 = p10;
- p2 = p20;
- m1 = m10;
- m2 = m20;
- sig1 = sig10;
- sig2 = sig20;
- avg_last = [p1 p2 m1 sig1 m2 sig2];
- parameterv = [];
- % delta = inf;
- diff_avg = inf;
- % delta_history = [];
- history = [];
- i = 1;
- while diff_avg > 0.00001
- Ppost = calc_probapost_Gauss(Y,p1,p2,m1,sig1,m2,sig2);
- [X_post] = tirage_apost(Ppost,classe(1),classe(2));
- [ p1_new, p2_new, m1_new, sig1_new, m2_new, sig2_new ] = est_empiriques(X_post, Y, classe);
- % delta_parametres = [abs(p1-p1_new) abs(p2-p2_new) abs(m1_new-m1) abs(m2_new-m2) abs(sig1_new-sig1) abs(sig2_new-sig2)];
- % delta = max(delta_parametres);
- %
- % delta_history(i,:) = delta_parametres;
- % delta_history(i,:) = delta_history(i,:)./delta_history(1,:);
- parameterv(i,:) = [p1_new p2_new m1_new sig1_new m2_new sig2_new];
- [m,~] = size(parameterv);
- s = max(1,m-20);
- avg = mean(parameterv(s:end,:),1);
- diff_avg = norm(avg_last - avg);
- % disp(avg);
- p1 = avg(1);
- p2 = avg(2);
- m1 = avg(3);
- m2 = avg(5);
- sig1 = avg(4);
- sig2 = avg(6);
- i = i+1;
- avg_last = avg;
- history(i,:) = avg;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement