提供了模式识别特征选择和特征提取详尽的matlab算法代码实现。
6 特征选择
6.1 问题
对“threethreelarge.m”数据,采用任意一种特征选择算法,选择2个特征
6.2 思路
采用简单特征选择法(simple feature selection approach),首先计算每一个特征的分类能力值,再选择出其中最大分类能力的l个特征。
6.3 结果
eigs = 8.9234 0.0000 0.0767
SelectedFeature = 1 3
也就是说,选取x和z坐标作为特征。
6.4 代码
% 特征选择代码,见FSthrthrlrg.m文件
m1=[0,0,0]; m2=[0,0,0]; m3=[0,0,0]; m=[0,0,0];
for i=1:200
m1(1)=m1(1)+(x1(i,1)-m1(1))/i;
m1(2)=m1(2)+(x1(i,2)-m1(2))/i;
m1(3)=m1(3)+(x1(i,3)-m1(3))/i;
end;
for i=1:190
m2(1)=m2(1)+(x2(i,1)-m2(1))/i;
m2(2)=m2(2)+(x2(i,2)-m2(2))/i;
m2(3)=m2(3)+(x2(i,3)-m2(3))/i;
end;
for i=1:210
m3(1)=m3(1)+(x3(i,1)-m3(1))/i;
m3(2)=m3(2)+(x3(i,2)-m3(2))/i;
m3(3)=m3(3)+(x3(i,3)-m3(3))/i;
end;
m(1)=(m1(1)+m2(1)+m3(1))/3;
m(2)=(m1(2)+m2(2)+m3(2))/3;
m(3)=(m1(3)+m2(3)+m3(3))/3;
sw1=zeros(3,3); sw2=zeros(3,3); sw3=zeros(3,3); sw=zeros(3,3); sb=zeros(3,3);
for i=1:200
sw1=sw1+([x1(i,1),x1(i,2),x1(i,3)]-m1)’*([x1(i,1),x1(i,2),x1(i,3)]-m1);
end;
for i=1:190
sw2=sw2+([x2(i,1),x2(i,2),x2(i,3)]-m2)’*([x2(i,1),x2(i,2),x2(i,3)]-m2);
end;
for i=1:210
sw3=sw3+([x3(i,1),x3(i,2),x3(i,3)]-m3)’*([x3(i,1),x3(i,2),x3(i,3)]-m3);
end;
N1=200; N2=190; N3=210; N=N1+N2+N3;