基于Fisher准则线性分类器设计.docx
- 文档编号:9951822
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:18
- 大小:353.78KB
基于Fisher准则线性分类器设计.docx
《基于Fisher准则线性分类器设计.docx》由会员分享,可在线阅读,更多相关《基于Fisher准则线性分类器设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于Fisher准则线性分类器设计
北京邮电大学实验报告
题目:
模式识别
班级:
专业:
姓名:
序号:
实验二、基于Fisher准则线性分类器设计
2.1实验类型:
设计型:
线性分类器设计(Fisher准则)
2.2实验目的:
本实验旨在让同学进一步了解分类器的设计概念,能够根据自己的设计对线性分类器有更深刻地认识,理解Fisher准则方法确定最佳线性分界面方法的原理,以及Lagrande乘子求解的原理。
2.3实验条件:
matlab软件,PC机
2.4实验原理:
线性判别函数的一般形式可表示成
其中
根据Fisher选择投影方向W的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W的函数为:
上面的公式是使用Fisher准则求最佳法线向量的解,该式比较重要。
另外,该式这种形式的运算,我们称为线性变换,其中
式一个向量,
是
的逆矩阵,如
是d维,
和
都是d×d维,得到的
也是一个d维的向量。
向量
就是使Fisher准则函数
达极大值的解,也就是按Fisher准则将d维X空间投影到一维Y空间的最佳投影方向,该向量
的各分量值是对原d维特征向量求加权和的权值。
以上讨论了线性判别函数加权向量W的确定方法,并讨论了使Fisher准则函数极大的d维向量
的计算方法,但是判别函数中的另一项
尚未确定,一般可采用以下几种方法确定
如
或者
或当
与
已知时可用
……
当W0确定之后,则可按以下规则分类,
使用Fisher准则方法确定最佳线性分界面的方法是一个著名的方法,尽管提出该方法的时间比较早,仍见有人使用。
2.5实验内容:
已知有两类数据
和
二者的概率已知
=0.6,
=0.4。
中数据点的坐标对应一一如下:
数据:
x=
0.23311.52070.64990.77571.05241.1974
0.29080.25180.66820.56220.90230.1333
-0.54310.9407-0.21260.0507-0.08100.7315
0.33451.0650-0.02470.10430.31220.6655
0.58381.16531.26530.8137-0.33990.5152
0.7226-0.20150.4070-0.1717-1.0573-0.2099
y=
2.33852.19461.67301.63651.78442.0155
2.06812.12132.47971.51181.96921.8340
1.87042.29481.77142.39391.56481.9329
2.20272.45681.75231.69912.48831.7259
2.04662.02262.37571.79872.08282.0798
1.94492.38012.23732.16141.92352.2604
z=
0.53380.85141.08310.41641.11760.5536
0.60710.44390.49280.59011.09271.0756
1.00720.42720.43530.98690.48411.0992
1.02990.71271.01240.45760.85441.1275
0.77050.41291.00850.76760.84180.8784
0.97510.78400.41581.03150.75330.9548
数据点的对应的三维坐标为
x2=
1.40101.23012.08141.16551.37401.1829
1.76321.97392.41522.58902.84721.9539
1.25001.28641.26142.00712.18311.7909
1.33221.14661.70871.59202.93531.4664
2.93131.83491.83402.50962.71982.3148
2.03532.60301.23272.14651.56732.9414
y2=
1.02980.96110.91541.49010.82000.9399
1.14051.06780.80501.28891.46011.4334
0.70911.29421.37440.93871.22661.1833
0.87980.55920.51500.99830.91200.7126
1.28331.10291.26800.71401.24461.3392
1.18080.55031.47081.14350.76791.1288
z2=
0.62101.36560.54980.67080.89321.4342
0.95080.73240.57841.49431.09150.7644
1.21591.30491.14080.93980.61970.6603
1.39281.40840.69090.84000.53811.3729
0.77310.73191.34390.81420.95860.7379
0.75480.73930.67390.86511.36991.1458
数据的样本点分布如下图:
2.6实验要求:
1)请把数据作为样本,根据Fisher选择投影方向
的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向
的函数,并在图形表示出来。
并在实验报告中表示出来,并求使
取极大值的
。
用matlab完成Fisher线性分类器的设计,程序的语句要求有注释。
2)根据上述的结果并判断(1,1.5,0.6)(1.2,1.0,0.55),(2.0,0.9,0.68),(1.2,1.5,0.89),(0.23,2.33,1.43),属于哪个类别,并画出数据分类相应的结果图,要求画出其在
上的投影。
3)回答如下问题,分析一下
的比例因子对于Fisher判别函数没有影响的原因。
2.7实验代码和实验结果
分类器设计和分类结果
x1=[0.23311.52070.64990.77571.05241.1974
0.29080.25180.66820.56220.90230.1333
-0.54310.9407-0.21260.0507-0.08100.7315
0.33451.0650-0.02470.10430.31220.6655
0.58381.16531.26530.8137-0.33990.5152
0.7226-0.20150.4070-0.1717-1.0573-0.2099];
y1=[2.33852.19461.67301.63651.78442.0155
2.06812.12132.47971.51181.96921.8340
1.87042.29481.77142.39391.56481.9329
2.20272.45681.75231.69912.48831.7259
2.04662.02262.37571.79872.08282.0798
1.94492.38012.23732.16141.92352.2604];
z1=[0.53380.85141.08310.41641.11760.5536
0.60710.44390.49280.59011.09271.0756
1.00720.42720.43530.98690.48411.0992
1.02990.71271.01240.45760.85441.1275
0.77050.41291.00850.76760.84180.8784
0.97510.78400.41581.03150.75330.9548];
x2=[1.40101.23012.08141.16551.37401.1829
1.76321.97392.41522.58902.84721.9539
1.25001.28641.26142.00712.18311.7909
1.33221.14661.70871.59202.93531.4664
2.93131.83491.83402.50962.71982.3148
2.03532.60301.23272.14651.56732.9414];
y2=[1.02980.96110.91541.49010.82000.9399
1.14051.06780.80501.28891.46011.4334
0.70911.29421.37440.93871.22661.1833
0.87980.55920.51500.99830.91200.7126
1.28331.10291.26800.71401.24461.3392
1.18080.55031.47081.14350.76791.1288];
z2=[0.62101.36560.54980.67080.89321.4342
0.95080.73240.57841.49431.09150.7644
1.21591.30491.14080.93980.61970.6603
1.39281.40840.69090.84000.53811.3729
0.77310.73191.34390.81420.95860.7379
0.75480.73930.67390.86511.36991.1458];
%数据录入,整合为矩阵
k=0;
fori=1:
6
forj=1:
6
k=k+1;
w1(:
k)=[x1(i,j);y1(i,j);z1(i,j)];
w2(:
k)=[x2(i,j);y2(i,j);z2(i,j)];
end
end
%计算均值向量m1和m2
m1=mean(w1,2);
m2=mean(w2,2);
%计算离散度矩阵
fori=1:
36
s1=(w1(:
i)-m1)*(w1(:
i)-m1)';
s2=(w2(:
i)-m2)*(w2(:
i)-m2)';
end
sw=s1+s2;
%计算阀值w0
w_new=transpose(inv(sw)*(m1-m2));
m1_new=w_new*m1;
m2_new=w_new*m2;
Pw1=0.6;Pw2=0.4;
e=exp
(1);
w0=(m1_new+m2_new)/2-log(Pw1/Pw2)/log(e)/(36+36-2);
%分类判断
x=[11.22.01.20.23
1.51.00.91.52.33
0.60.550.680.891.43];
m=0;n=0;
result1=[];result2=[];
fori=1:
5
y(i)=w_new*x(:
i);
ify(i)>w0
m=m+1;
result1(:
m)=x(:
i);
else
n=n+1;
result2(:
n)=x(:
i);
end
end
%结果显示
display('属于第一类的点')
result1
display('属于第二类的点')
result2
scatter3(w1(1,:
),w1(2,:
),w1(3,:
),'+r'),holdon
scatter3(w2(1,:
),w2(2,:
),w2(3,:
),'sg'),holdon
scatter3(result1(1,:
),result1(2,:
),result1(3,:
),'k'),holdon
scatter3(result2(1,:
),result2(2,:
),result2(3,:
),'bd')
title('样本点及实验点的空间分布图')
legend('样本点w1','样本点w2','属于第一类的实验点','属于第二类的实验点')
实验结果
分类结果如下:
画出其在w上的投影
x1=[0.23311.52070.64990.77571.05241.1974
0.29080.25180.66820.56220.90230.1333
-0.54310.9407-0.21260.0507-0.08100.7315
0.33451.0650-0.02470.10430.31220.6655
0.58381.16531.26530.8137-0.33990.5152
0.7226-0.20150.4070-0.1717-1.0573-0.2099];
x2=[2.33852.19461.67301.63651.78442.0155
2.06812.12132.47971.51181.96921.8340
1.87042.29481.77142.39391.56481.9329
2.20272.45681.75231.69912.48831.7259
2.04662.02262.37571.79872.08282.0798
1.94492.38012.23732.16141.92352.2604];
x3=[0.53380.85141.08310.41641.11760.5536
0.60710.44390.49280.59011.09271.0756
1.00720.42720.43530.98690.48411.0992
1.02990.71271.01240.45760.85441.1275
0.77050.41291.00850.76760.84180.8784
0.97510.78400.41581.03150.75330.9548];
%将x1、x2、x3变为行向量
x1=x1(:
);
x2=x2(:
);
x3=x3(:
);%计算第一类的样本均值向量m1
m1
(1)=mean(x1);
m1
(2)=mean(x2);
m1(3)=mean(x3);%计算第一类样本类内离散度矩阵S1
S1=zeros(3,3);
fori=1:
36
S1=S1+[-m1
(1)+x1(i)-m1
(2)+x2(i)-m1(3)+x3(i)]'*[-m1
(1)+x1(i)-m1
(2)+x2(i)-m1(3)+x3(i)];
end
%w2的数据点坐标
x4=[1.40101.23012.08141.16551.37401.1829
1.76321.97392.41522.58902.84721.9539
1.25001.28641.26142.00712.18311.7909
1.33221.14661.70871.59202.93531.4664
2.93131.83491.83402.50962.71982.3148
2.03532.60301.23272.14651.56732.9414];
x5=[1.02980.96110.91541.49010.82000.9399
1.14051.06780.80501.28891.46011.4334
0.70911.29421.37440.93871.22661.1833
0.87980.55920.51500.99830.91200.7126
1.28331.10291.26800.71401.24461.3392
1.18080.55031.47081.14350.76791.1288];
x6=[0.62101.36560.54980.67080.89321.4342
0.95080.73240.57841.49431.09150.7644
1.21591.30491.14080.93980.61970.6603
1.39281.40840.69090.84000.53811.3729
0.77310.73191.34390.81420.95860.7379
0.75480.73930.67390.86511.36991.1458];
x4=x4(:
);
x5=x5(:
);
x6=x6(:
);%计算第二类的样本均值向量m2
m2
(1)=mean(x4);
m2
(2)=mean(x5);
m2(3)=mean(x6);
%计算第二类样本类内离散度矩阵S2
S2=zeros(3,3);
fori=1:
36
S2=S2+[-m2
(1)+x4(i)-m2
(2)+x5(i)-m2(3)+x6(i)]'*[-m2
(1)+x4(i)-m2
(2)+x5(i)-m2(3)+x6(i)];
end
%总类内离散度矩阵Sw
Sw=zeros(3,3);
Sw=S1+S2;
%样本类间离散度矩阵Sb
Sb=zeros(3,3);
Sb=(m1-m2)'*(m1-m2);%最优解W
W=Sw^-1*(m1-m2)';%将W变为单位向量以方便计算投影
W=W/sqrt(sum(W.^2));%计算一维Y空间中的各类样本均值M1及M2
fori=1:
36
y(i)=W'*[x1(i)x2(i)x3(i)]';
end
M1=mean(y)
fori=1:
36
y(i)=W'*[x4(i)x5(i)x6(i)]';
end
M2=mean(y)%利用当P(w1)与P(w2)已知时的公式计算W0
p1=0.6;p2=0.4;
W0=-(M1+M2)/2+(log(p2/p1))/(36+36-2);%计算将样本投影到最佳方向上以后的新坐标
X1=[x1*W
(1)+x2*W
(2)+x3*W(3)]';
X2=[x4*W
(1)+x5*W
(2)+x6*W(3)]';%得到投影长度
XX1=[W
(1)*X1;W
(2)*X1;W(3)*X1];
XX2=[W
(1)*X2;W
(2)*X2;W(3)*X2];
%得到新坐标
%绘制样本点
figure
(1)
plot3(x1,x2,x3,'r*')%第一类
holdon
plot3(x4,x5,x6,'bp')
%第二类
legend('第一类点','第二类点')
title('Fisher线性判别曲线')
W1=5*W;
%画出最佳方向
line([-W1
(1),W1
(1)],[-W1
(2),W1
(2)],[-W1(3),W1(3)],'color','b');
%判别已给点的分类
a1=[1,1.5,0.6]';a2=[1.2,1.0,0.55]';a3=[2.0,0.9,0.68]';
a4=[1.2,1.5,0.89]';a5=[0.23,2.33,1.43]';A=[a1a2a3a4a5]
n=size(A,2);
%下面代码在改变样本时都不必修改
%绘制待测数据投影到最佳方向上的点
fork=1:
n
A1=A(:
k)'*W;
A11=W*A1;
%得到待测数据投影
y=W'*A(:
k)+W0;
%计算后与0相比以判断类别,大于0为第一类,小于0为第二类
ify>0
plot3(A(1,k),A(2,k),A(3,k),'go');
%点为"rp"对应第一类
plot3(A11
(1),A11
(2),A11(3),'go');
%投影为"r+"对应go类
else
plot3(A(1,k),A(2,k),A(3,k),'m+');
%点为"bh"对应m+类
plot3(A11
(1),A11
(2),A11(3),'m+');
%投影为"b*"对应m+类
end
end
%画出最佳方向
line([-W1
(1),W1
(1)],[-W1
(2),W1
(2)],[-W1(3),W1(3)],'color','k');
view([-37.5,30]);
axis([-2,3,-1,3,-0.5,1.5]);
gridon
holdoff
其中,下方的实直线是最佳投影方向。
待测数据投影在其上,圆圈是被分为第一类的样本点,十字是被分为第二类的样本点。
取极大值的
=(-0.0798,0.2005,-0.0478)
实验分析:
w的比例因子对于Fisher判别函数没有影响的原因:
我们的目的是求得是最大投影方向W。
由于对W幅值的调节不会影响W的方向,即不会影响广义瑞利商的值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Fisher 准则 线性 分类 设计