一.实验题目
二. 算法分析
三. 三种情况下的代码
load data1.mat
sort1= 1;sort2= 2;P1= 0.5;P2= 0.5;d= 1;
x1 =data(1:d, class == sort1);
x2 =data(1:d, class == sort2);
cov1 = cov(x1');%求协方差
cov2 = cov(x2');
m1 = mean(x1, 2);%求均值
m2 = mean(x2, 2);
final1 = zeros( size(x1, 2), 1);%为存储分类后的结果
final2 = zeros(size(x2, 2), 1);
for i = 1:size(x1, 2);%公式(49),正态分布,判别函数,分类
a1=-0.5*(x1(:, i) - m2)'*inv(cov2)*(x1(:, i) -m2) ;
a2=size(m2, 1)/2.0*log(2*pi);
a3=0.5*log(det(cov2));
a4=log(P2);
a=a1-a2-a3+a4;
b1=-0.5*(x1(:, i) - m1)'*inv(cov1)*(x1(:, i) -m1);
b2=size(m1, 1)/2.0*log(2*pi);
b3=0.5*log(det(cov1));
b4=log(P1);
b=b1-b2-b2+b4;
if a >= b %修改分类结果
final1(i) = sort2;
else
final1(i) = sort1;
end
end
for i = 1:size(x2, 2) %公式(49),正态分布,判别函数,分类
a1=-0.5*(x2(:, i) - m2)'*inv(cov2)*(x2(:, i) -m2) ;
a2=size(m2, 1)/2.0*log(2*pi);
a3=0.5*log(det(cov2));
a4=log(P2);
a=a1-a2-a3+a4;
b1=-0.5*(x2(:, i) - m1)'*inv(cov1)*(x2(:, i) -m1);
b2=size(m1, 1)/2.0*log(2*pi);
b3=0.5*log(det(cov1));
b4=log(P1);
b=b1-b2-b2+b4;
if a >= b %修改分