阅读 94

分类器设计步骤,线性分类器例题

已知两种数据和两者的概率。

中数据点的坐标对应如下。

=[ 0.2331.52070.64990.77571.05241.1974 ]

0.29080.25180.66820.56220.90230.1333

- 0.54310.9407-0.21260.0507-0.0810.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;

=[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.9449 ) 2.3801 ) 2.2373 ) 2.1614 ) 1.9235 ) 2.2604;

=[ 0.53380.85141.08310.41641.11760.5536 ]

0.60710.44390.49280.59011.09271.0756

1.00720.42720.43530.98690.4841.0992

1.02990.71271.01240.45760.85441.1275

0.77050.41291.00850.76760.84180.8784

0.97510.7840.41581.03150.75330.9548;

数据点的相应三维坐标为

=[ 1.40101.23012.08141.16551.37401.1829 ]

1.76321.97392.4152.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;

=[ 1.02980.9611.91541.49010.8200.9399 ]

1.14051.06780.80501.28891.4601.4334

0.7091.29421.37440.93871.22661.1833

0.87980.55920.5150.99830.9120.7126

1.28331.10291.2680.71401.24461.3392

1.18080.55031.47081.14350.76791.1288;

=[ 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.8400.5381.3729

0.77310.73191.34390.81420.95860.7379

0.75480.73930.67390.8651.36991.1458;

数据采样点

布如下图:



1、请把数据作为样本,根据  选择投影方向  的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向  的函数,并在图形表示出来。并在实验报告中表示出来,并求使  取极大值的 。用  完成  线性分类器的设计,程序的语句要求有注释。

2、根据上述的结果并判断     ,属于哪个类别,并画出数据分类相应的结果图,要求画出其在  上的投影。

实验程序 function fisher%w1中数据点的坐标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];x2 =[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];x3 =[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.87840.9751 0.7840 0.4158 1.0315 0.7533 0.9548];%将x1、x2、x3变为行向量x1=x1(:);x2=x2(:);x3=x3(:);%计算第一类的样本均值向量m1m1(1)=mean(x1);m1(2)=mean(x2);m1(3)=mean(x3);%计算第一类样本类内离散度矩阵S1S1=zeros(3,3);for i=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.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];x5 =[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];x6 =[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];x4=x4(:);x5=x5(:);x6=x6(:);%计算第二类的样本均值向量m2m2(1)=mean(x4);m2(2)=mean(x5);m2(3)=mean(x6);%计算第二类样本类内离散度矩阵S2S2=zeros(3,3);for i=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%总类内离散度矩阵SwSw=zeros(3,3);Sw=S1+S2;%样本类间离散度矩阵SbSb=zeros(3,3);Sb=(m1-m2)'*(m1-m2);%最优解WW=Sw^-1*(m1-m2)'%将W变为单位向量以方便计算投影W=W/sqrt(sum(W.^2));%计算一维Y空间中的各类样本均值M1及M2for i=1:36 y(i)=W'*[x1(i) x2(i) x3(i)]';endM1=mean(y)for i=1:36 y(i)=W'*[x4(i) x5(i) x6(i)]';endM2=mean(y)%利用当P(w1)与P(w2)已知时的公式计算W0p1=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*') %第一类hold onplot3(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=[a1 a2 a3 a4 a5]n=size(A,2); %下面代码在改变样本时都不必修改%绘制待测数据投影到最佳方向上的点for k=1:n A1=A(:,k)'*W; A11=W*A1;%得到待测数据投影 y=W'*A(:,k)+W0;%计算后与0相比以判断类别,大于0为第一类,小于0为第二类 if y>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+类 endend%画出最佳方向 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]);grid onhold off


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐