EM算法讲解+程序Word格式.docx
- 文档编号:20844424
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:12
- 大小:271.48KB
EM算法讲解+程序Word格式.docx
《EM算法讲解+程序Word格式.docx》由会员分享,可在线阅读,更多相关《EM算法讲解+程序Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
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-
%************
%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'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EM 算法 讲解 程序