变换进行特征提取.doc
文本预览下载声明
利用K-L变换进行特征提取的实验
基本要求
用FAMALE.TXT和MALE.TXT的数据作为本次实验使用的样本集,利用K-L变换对该样本集进行变换,与过去用Fisher线性判别方法或其它方法得到的分类面进行比较,从而加深对所学内容的理解和感性认识。
具体做法
不考虑类别信息对整个样本集进行K-L变换(即PCA),并将计算出的新特征方向表示在二维平面上,考察投影到特征值最大的方向后男女样本的分布情况并用该主成分进行分类
利用类平均向量提取判别信息,选取最好的投影方向,考察投影后样本的分布情况并用该投影方向进行分类。
将上述投影和分类情况与以前做的各种分类情况比较,考察各自的特点和相互关系。
实验原理
K-L变换是一种基于目标统计特性的最佳正交变换。它具有一些优良的性质:即变换后产生的新的分量正交或者不相关;以部分新的分量表示原矢量均方误差最小;变换后的矢量更趋确定,能量更集中。这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集。
设n维矢量,其均值矢量,协方差阵,此协方差阵为对称正定阵,则经过正交分解克表示为,其中,为对应特征值的特征向量组成的变换阵,且满足。变换阵为旋转矩阵,再此变换阵下变换为,在新的正交基空间中,相应的协方差阵。通过略去对应于若干较小特征值的特征向量来给y降维然后进行处理。通常情况下特征值幅度差别很大,忽略一些较小的值并不会引起大的误差。
1.不考虑类别信息对整个样本集进行K-L变换(即PCA)
(1)读入female.txt 和male.txt 两组数据,组成一个样本集。计算样本均值向量和协方差
(2)计算协方差阵C的特征值和特征向量U
(3)选取特征值最大的特征向量作为投影方向
(4)选取阈值进行判断
2.利用类平均信息提取判别信息
(1)读入female.txt 和male.txt 两组数据,分别计算样本均值向量和协方差,及总均值向量
(2)计算类间离散度矩阵Sb ()与类内离散度矩阵Sw()
(3)用比较分类性能,选择最佳投影方向
(4)选取阈值进行判断
实验结果与分析
1.不考虑类别信息对整个样本集进行K-L变换(即PCA)
U=(0.6269,0.7791)T ,P1=0.5, P2=0.5
判错个数 错误率 采用K-L变换判别方法 14 14% 采用Fisher线性判别方法 12 12%
2.利用类平均信息提取判决信息
U=(0.5818,0.8133)T,P1=0.5, P2=0.5
判错个数 错误率 采用K-L变换判别方法 13 13% 采用Fisher线性判别方法 12 12%
心得体会
%不考虑类别信息
clc;
clear all;
[FH FW]=textread(C:\Users\rengang\Desktop\homework\FEMALE.txt,%f %f);
[MH MW]=textread(C:\Users\rengang\Desktop\homework\MALE.txt,%f %f);
FA=[FH FW];FA=FA;
MA=[MH MW];MA=MA;
for k=1:50
NT(:,k)=FA(:,k);
end
for k=51:100
NT(:,k)=MA(:,k-50);
end
X=(sum(NT)/length(NT));%这里NT是一个100*2的矩阵,X为总样本均值。
c=cov(NT);
[u,v]=eig(c);%求矩阵c的全部特征值,构成对角阵v,并求c的特征向量构成u的列向量。
[a,b]=max(v);
[c,d]=max(a);
U=u(:,d)
x=U*X;
errorg=0;
errorb=0;
for k=1:100
TT(:,k)=U*NT(:,k);
if k=50
if TT(:,k)x
errorg=errorg + 1;
end
else
if TT(:,k)x
errorb=errorb+1;
end
end
end
errorg
errorb
error=errorg+errorb
h=error/100
%利用类平均信息
clc;
clear all;
[FH FW]=textread(C:\Users\rengang\Desktop\homework\FEMALE.txt,%f %f);
[MH MW]=textread(C:\Users\rengang\Desktop\homework\MALE.txt,%f %f);
FA=[F
显示全部