matlab 特征选择算法,特征选择、特征提取matlab算法实现(模式识别)

  • Post author:
  • Post category:其他


提供了模式识别特征选择和特征提取详尽的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;