EM算法讲解+程序Word格式.docx

上传人:b****3 文档编号:8059231 上传时间:2023-05-10 格式:DOCX 页数:12 大小:269.96KB
下载 相关 举报
EM算法讲解+程序Word格式.docx_第1页
第1页 / 共12页
EM算法讲解+程序Word格式.docx_第2页
第2页 / 共12页
EM算法讲解+程序Word格式.docx_第3页
第3页 / 共12页
EM算法讲解+程序Word格式.docx_第4页
第4页 / 共12页
EM算法讲解+程序Word格式.docx_第5页
第5页 / 共12页
EM算法讲解+程序Word格式.docx_第6页
第6页 / 共12页
EM算法讲解+程序Word格式.docx_第7页
第7页 / 共12页
EM算法讲解+程序Word格式.docx_第8页
第8页 / 共12页
EM算法讲解+程序Word格式.docx_第9页
第9页 / 共12页
EM算法讲解+程序Word格式.docx_第10页
第10页 / 共12页
EM算法讲解+程序Word格式.docx_第11页
第11页 / 共12页
EM算法讲解+程序Word格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EM算法讲解+程序Word格式.docx

《EM算法讲解+程序Word格式.docx》由会员分享,可在线阅读,更多相关《EM算法讲解+程序Word格式.docx(12页珍藏版)》请在冰点文库上搜索。

EM算法讲解+程序Word格式.docx

3.3M-step计算

重新估计参数,包括均值、方差、混合系数并且估计此参数下的期望值。

3.4收敛性判断

将新的

与旧的值进行比较,并与设置的阈值进行对比,判断迭代是否结束,若不符合条件,则返回到3.2,重新进行下面步骤,直到最后收敛才结束。

 

四、算法的流程图

五、实验结果

a_best=

0.80220.1978

mu_best=

2.71483.9307

4.98823.0102

cov_best=

(:

:

1)=

5.4082-0.0693

-0.06930.2184

(:

2)=

0.0858-0.0177

-0.01770.0769

f=

-1.6323

数据X的分布

每次迭代期望值

利用EM估计的参量值与真实值比较(红色:

真实值青绿色:

估计值)

六、参考文献

1.M.Jordan.PatternRecognitionAndMachineLearning

2.XiaoHan.EMAlgorithm

七、附录

closeall;

clear;

clc;

%参考书籍Pattern.Recognition.and.Machine.Learning.pdf

%http:

//www.pr-

%lwm@pr-

%2009/10/15

%%

M=2;

%numberofGaussian

N=200;

%totalnumberofdatasamples

th=0.000001;

%convergentthreshold

K=2;

%dementionofoutputsignal

%待生成数据的参数

a_real=[4/5;

1/5];

mu_real=[34;

53];

cov_real(:

1)=[50;

00.2];

2)=[0.10;

00.1];

%generatethedata

x=[mvnrnd(mu_real(:

1),cov_real(:

1),round(N*a_real

(1)))'

mvnrnd(mu_real(:

2),cov_real(:

2),N-round(N*a_real

(1)))'

];

%fori=1:

round(N*a_real

(1))

%while(~((x(1,i)>

0)&

&

(x(2,i)>

(x(1,i)<

10)&

(x(2,i)<

10)))

%x(:

i)=mvnrnd(mu_real(:

1),cov_real(:

1),1)'

;

%end

%

%fori=round(N*a_real

(1))+1:

N

figure

(1),plot(x(1,:

),x(2,:

),'

.'

%这里生成的数据全部符合标准

%%%%%%%%%%%%%%%%%%参数初始化

a=[1/3,2/3];

mu=[12;

21];

%均值初始化完毕

cov(:

1)=[10;

01];

2)=[10;

%协方差初始化

%%EMAlgorothm

%loop

count=0;

figure

(2),holdon

while1

a_old=a;

mu_old=mu;

cov_old=cov;

rznk_p=zeros(M,N);

forcm=1:

M

mu_cm=mu(:

cm);

cov_cm=cov(:

forcn=1:

p_cm=exp(-0.5*(x(:

cn)-mu_cm)'

/cov_cm*(x(:

cn)-mu_cm));

rznk_p(cm,cn)=p_cm;

end

rznk_p(cm,:

)=rznk_p(cm,:

)/sqrt(det(cov_cm));

rznk_p=rznk_p*(2*pi)^(-K/2);

%Estep

%开始求rznk

rznk=zeros(M,N);

%r(Z

pikn=zeros(1,M);

pikn_sum=0;

pikn(1,cm)=a(cm)*rznk_p(cm,cn);

%pikn_sum=pikn_sum+pikn(1,cm);

rznk(cm,cn)=pikn(1,cm)/sum(pikn);

%求rank结束

%Mstep

nk=zeros(1,M);

nk(1,cm)=nk(1,cm)+rznk(cm,cn);

a=nk/N;

rznk_sum_mu=zeros(M,1);

%求均值MU

rznk_sum_mu=0;

%开始的时候就是错在这里,这里要置零。

rznk_sum_mu=rznk_sum_mu+rznk(cm,cn)*x(:

cn);

mu(:

cm)=rznk_sum_mu/nk(cm);

%求协方差COV

rznk_sum_cov=zeros(K,M);

rznk_sum_cov=rznk_sum_cov+rznk(cm,cn)*(x(:

cn)-mu(:

cm))*(x(:

cm))'

cov(:

cm)=rznk_sum_cov/nk(cm);

t=max([norm(a_old(:

)-a(:

))/norm(a_old(:

));

norm(mu_old(:

)-mu(:

))/norm(mu_old(:

norm(cov_old(:

)-cov(:

))/norm(cov_old(:

))]);

temp_f=sum(log(sum(pikn)));

plot(count,temp_f,'

r+'

count=count+1;

ift<

th

break;

end%while1

holdoff

f=sum(log(sum(pikn)));

a_best=a;

mu_best=mu;

cov_best=cov;

f_best=f;

%输出结果

disp('

a_best='

);

disp(a_best);

mu_best='

disp(mu_best);

cov_best='

disp(cov_best);

f='

disp(f);

figure(3),

holdon

plot(x(1,:

plot(mu_real(1,:

),mu_real(2,:

*r'

plot(mu_best(1,:

),mu_best(2,:

+c'

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2