资源简介

fisher线性判别分类器的设计实验源码

资源截图

代码片段和文件信息

clear
clc
close all;
%m1m2均为10个样本
% m1=[-0.40.580.089;-0.310.27-0.04;0.380.055-0.035;-0.150.530.011;-0.350.470.034;0.170.690.1;-0.0110.55-0.18];
% m2=[0.831.6-0.014;1.11.60.48;-0.44-0.410.32;0.047-0.451.4;0.280.353.1;-0.39-0.480.11;0.34-0.0790.14];
% a) 对类别m1m2利用fisher原则计算投影方向w
 m1=[0 0 0; 1 0 0; 1 0 2; 1 1 0; 0.5 0 0.5;1 0.5 0;1 0 0.5];
 m2=[0 0 1; 0 1 0; 0 1 1; 1 2 1;0 0.5 1;0 1 0.5; 0.5 1 2];
 u1=mean(m1);%求均值
 u2=mean(m2);
%计算类内散度Si和总类内散度Sw
% S1=(m1(1:)-u1)‘*(m1(1:)-u1)
% S2=(m2(1:)-u2)‘*(m2(1:)-u2)
% for i=2:7
%     S1=S1+(m1(i:)-u1)‘*(m1(i:)-u1);
%     S2=S2+(m2(i:)-u2)‘*(m2(i:)-u2);
% end
One1=ones(71);
One2=ones(71);
S1=(m1-One1*u1)‘*(m1-One1*u1);
S2=(m2-One2*u2)‘*(m2-One2*u2);
Sw=S1+S2;
%变换向量
w=inv(Sw)*(u1-u2)‘;
%b) 画出投影前的两类样本点和投影线.(即特征向量:各类方差)
x1=m1(1:71);y1=m1(1:72);z1=m1(1:73);
x2=m2(1:71);y2=m2(1:72);z2=m2(1:73);
%subplot(121);
figure(1)
plot3(x1y1z1‘r*‘x2y2z2‘b*‘); %plot3为三维线图

title(‘原样本分布图‘);%画出原两类样本点
hold on
x=-2:0.1:2;
y=w(21)/w(11)*x;
z=w(31)/w(11)*x;
plot3(xyz);%画出投影线
legend(‘第一类样本‘‘第二类样本‘‘投影线‘2);
%rotate3D on       %鼠标移动可以旋转三维坐标

% c) 画出投影后的两类样本点和投影线

评论

共有 条评论