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

📄 fisher.m

📁 Bayes分类器和Fisher分类器的设计仿真
💻 M
字号:
% 基于Fisher准则线性分类器设计
close all 
clear all
echo off

% 先验概率
p1=0.6; % 第一类数据
p2=0.4; % 第二类数据

% 已知样本
x1=[0.2331    1.5207    0.6499    0.7757    1.0524    1.1974...
    0.2908    0.2518    0.6682    0.5622    0.9023    0.1333...
   -0.5431    0.9407   -0.2126    0.0507   -0.0810    0.7315...
    0.3345    1.0650   -0.0247    0.1043    0.3122    0.6655...
    0.5838    1.1653    1.2653    0.8137   -0.3399    0.5152...
    0.7226   -0.2015    0.4070   -0.1717   -1.0573   -0.2099];
y1=[2.3385    2.1946    1.6730    1.6365    1.7844    2.0155...
    2.0681    2.1213    2.4797    1.5118    1.9692    1.8340...
    1.8704    2.2948    1.7714    2.3939    1.5648    1.9329...
    2.2027    2.4568    1.7523    1.6991    2.4883    1.7259...
    2.0466    2.0226    2.3757    1.7987    2.0828    2.0798...
    1.9449    2.3801    2.2373    2.1614    1.9235    2.2604];
z1=[0.5338    0.8514    1.0831    0.4164    1.1176    0.5536...
    0.6071    0.4439    0.4928    0.5901    1.0927    1.0756...
    1.0072    0.4272    0.4353    0.9869    0.4841    1.0992...
    1.0299    0.7127    1.0124    0.4576    0.8544    1.1275...
    0.7705    0.4129    1.0085    0.7676    0.8418    0.8784...
    0.9751    0.7840    0.4158    1.0315    0.7533    0.9548];
x2=[1.4010    1.2301    2.0814    1.1655    1.3740    1.1829...
    1.7632    1.9739    2.4152    2.5890    2.8472    1.9539...
    1.2500    1.2864    1.2614    2.0071    2.1831    1.7909...
    1.3322    1.1466    1.7087    1.5920    2.9353    1.4664...
    2.9313    1.8349    1.8340    2.5096    2.7198    2.3148...
    2.0353    2.6030    1.2327    2.1465    1.5673    2.9414];
y2=[1.0298    0.9611    0.9154    1.4901    0.8200    0.9399...
    1.1405    1.0678    0.8050    1.2889    1.4601    1.4334...
    0.7091    1.2942    1.3744    0.9387    1.2266    1.1833...
    0.8798    0.5592    0.5150    0.9983    0.9120    0.7126...
    1.2833    1.1029    1.2680    0.7140    1.2446    1.3392...
    1.1808    0.5503    1.4708    1.1435    0.7679    1.1288];
z2=[0.6210    1.3656    0.5498    0.6708    0.8932    1.4342...
    0.9508    0.7324    0.5784    1.4943    1.0915    0.7644...
    1.2159    1.3049    1.1408    0.9398    0.6197    0.6603...
    1.3928    1.4084    0.6909    0.8400    0.5381    1.3729...
    0.7731    0.7319    1.3439    0.8142    0.9586    0.7379...
    0.7548    0.7393    0.6739    0.8651    1.3699    1.1458];

% 第一类样本集 每一列为一组待测数据
sample1=[x1;y1;z1];
% 第二类样本集 每一列为一组待测数据
sample2=[x2;y2;z2];

% 待测数据 每一列为一组待测数据
yb=[1.0000    1.2000    2.0000    1.2000    0.2300;
    1.5000    1.0000    0.9000    1.5000    2.3300;
    0.6000    0.5500    0.6800    0.8900    1.4300;];

% 在d维X空间中
% 各类样本的均值向量
m1=mean(sample1,2); % 第一类
m2=mean(sample2,2); % 第二类

% 样本类内离散度矩阵
s1=zeros(size(sample1,1));
NUM1=length(x1); % 第一类样本数
for ii=1:NUM1
    s1=s1+(sample1(:,ii)-m1)*(sample1(:,ii)-m1)';
end % 第一类

s2=zeros(size(sample2,1));
NUM2=length(x2); % 第二类样本数
for ii=1:NUM2
    s2=s2+(sample2(:,ii)-m2)*(sample2(:,ii)-m2)';
end % 第二类

% 总类内离散度矩阵
sw=p1*s1+p2*s2;

% 最佳投影方向
w=inv(sw)*(m1-m2);
% 投影直线
t=[0:0.01:4];
xt=w(1)*t;
yt=w(2)*t;
zt=w(3)*t;
plot3(xt,yt,zt,'g');
hold on

% 在一维Y空间中
% 各类样本的均值
mf1=w'*m1; % 第一类
mf2=w'*m2; % 第二类

% 利用先验知识确定分界阈值点
w0=(mf1+mf2)/2+log(p1/p2)/(NUM1+NUM2-2);

% 描出所有给定样本点的位置
for ii=1:size(sample1,2) % 第一类样本
    plot3(sample1(1,ii),sample1(2,ii),sample1(3,ii),'r*')
end
for ii=1:size(sample2,2) % 第二类样本
    plot3(sample2(1,ii),sample2(2,ii),sample2(3,ii),'b*')
end

% 求解待测样本点的投影
point=tyf(w,yb);
% 分类判决
for ii=1:size(yb,2)
    if w'*yb(:,ii)>w0 % 将其判为第一类并标出其位置及投影点
        disp('A')
        plot3(yb(1,ii),yb(2,ii),yb(3,ii),'m+')
        plot3(point(1,ii),point(2,ii),point(3,ii),'m*')
    else % 将其判为第二类并标出其位置及投影点
        disp('B')
        plot3(yb(1,ii),yb(2,ii),yb(3,ii),'c+')
        plot3(point(1,ii),point(2,ii),point(3,ii),'c*')
    end
end
grid on

⌨️ 快捷键说明

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