⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fisher.m

📁 这是一个模式是别里的关于fisher算法实现的广义线性分类器
💻 M
字号:
%利用work1中的10个样本设计一个线性分分类
clc;clear;
X1=[-5.01 -0.91;-5.43 1.30;1.08 -7.75;0.86 -5.47;-2.67 6.14;4.94 3.60;-2.51 5.37;-2.25 7.18;5.56 -7.39;1.03 -7.50];
X2=[-8.12 -0.18;-3.48 -2.06;-5.52 -4.54;-3.78 0.50;0.63 5.72;3.29 1.26;2.09 -4.63;-2.13 1.46;2.86 1.17;-3.33 -6.32];
for j=1:10
     X11(j)=X1(j,1);
     X12(j)=X1(j,2);
     X21(j)=X2(j,1);
     X22(j)=X2(j,2);
 end
m1=1/10.*sum(X1);
m2=1/10.*sum(X2);
s1=zeros(2,2);s2=s1;
for i=1:10
    s1=s1+(X1(i,:)-m1).'*(X1(i,:)-m1);
    s2=s2+(X2(i,:)-m2).'*(X2(i,:)-m2);
end
sw=s1+s2;
W=inv(sw)*(m1-m2)';
Y1=zeros(10,2);Y2=Y1;
for i=1:10
Y1(i,:)=W'*X1(i,:)';
Y2(i,:)=W'*X2(i,:)';
end
plot(X11,X12,'r *',X21,X22,'g o');hold on;
x=-8:0.01:8;
y=W(2,1)/W(1,1)*x;
plot(x,y);%画出最优投影线
legend('样本1','样本2','投影线',2);
x=-8:0.01:8;
y=W(2,1)/W(1,1)*x;
figure,plot(x,y);hold on;%画出最优投影线
% plot(Y1,zeros(1,length(Y1)),'y *');hold on;
% plot(Y2,zeros(1,length(Y2)),'g O');
for i=1:10
    x1=(X1(i,1)+W(2,1)/W(1,1)*X1(i,2))/(1+(W(2,1)/W(1,1))^2);
    y1=W(2,1)/W(1,1)*x1;
    plot(x1,y1,'r*'); 
    x2=(X2(i,1)+W(2,1)/W(1,1)*X2(i,2))/(1+(W(2,1)/W(1,1))^2);
    y2=W(2,1)/W(1,1)*x2;
    plot(x2,y2,'gO');  
end
title('利用fisher准则函数实现二维到一维降维');
legend('投影轴','投影后一类样本点','投影后二类样本点');
mm1=1/10*sum(Y1);
mm2=1/10*sum(Y2);
%y01=(mm1+mm2)/2;%计算阈值y0方法一
y02=(10*mm1+10*mm2)/20;
fprintf('对第一类二维样本集X1降维后所得一维样本集Y1决策结果如下:\n');
for i=1:10
Y=Y1(i);
if(Y>y02)
    fprintf('Y(%d) belong to 1st kind\n', i);
else
    fprintf('Y(%d) belong to 2st kind\n', i);
end 
end
fprintf('对第二类二维样本集X2降维后所得一维样本集Y2决策结果如下:\n');
for i=1:10
Y=Y2(i);
if(Y>y02)
    fprintf('Y(%d) belong to 1st kind\n', i);
else
    fprintf('Y(%d) belong to 2st kind\n', i);
end 
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -