模式识别特征选择与提取
- 格式:doc
- 大小:370.77 KB
- 文档页数:8
特征选择、特征提取MATLAB算法实现(模式识别)6特征选择6.1问题对“threethreelarge.m”数据,采⽤任意⼀种特征选择算法,选择2个特征6.2思路采⽤简单特征选择法(simple feature selection approach),⾸先计算每⼀个特征的分类能⼒值,再选择出其中最⼤分类能⼒的l个特征。
6.3结果eigs=8.92340.00000.0767SelectedFeature=13也就是说,选取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:200m1(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:190m2(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:210m3(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:200sw1=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:190sw2=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:210sw3=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;p1=N1/N;p2=N2/N;p3=N3/N;sw1=sw1/N1;sw2=sw2/N2;sw3=sw3/N3;sw=p1*sw1+p2*sw2+p3*sw3;sb=p1*(m1-m)'*(m1-m)+p2*(m2-m)'*(m2-m)+p3*(m3-m)'*(m3-m);s=inv(sw)*sb;j1=trace(s)eigs=eig(s)';eigsIndex=[1,2,3];%冒泡法排序,注意的是特征值顺序变化的同时要与相对应的下标同步for i=1:3for j=i:3if(eigs(i)eigstemp=eigs(i);eigs(i)=eigs(j);eigs(j)=eigstemp;eigsIndextemp=eigsIndex(i);eigsIndex(i)=eigsIndex(j);eigsIndex(j)=eigsIndextemp;end;end;end;%降序排列后的特征值,直接选取前L个特征SelectedFeature=[eigsIndex(1),eigsIndex(2)]%FSthrthrlrg.m程序结束6.5讨论从实验结果中我们可以看到y特征的分类能⼒最⼩,这⼀点可以从实验数据中得到验证——三类数据在y⽅向的分布⼏乎是相同的(见下图)。
第六章特征选择与提取6.1 引言6.2 类别可分性判据6.3 特征选择6.4 特征提取6.5 图象的特征提取6.1 引言基本任务:如何从多特征中找出那些最有效的特征或:获取一组”少而精”的分类特征压缩⇒⇒研究如何高维特征空间低维特征空间特征分为三类:(1)物理的; (2)结构的; (3)数学的本章研究、讨论:学习样本选择并提取数学特征⎧⎨⎩⎧⎪⎪⎪⎨⎪⎧⎪⎨⎪⎩⎩物理人们直观识别对象特征感觉器官接受结构统计平均值相关系数机器自动识别对象:数学特征本征值协方差阵本征向量基本概念1.特征形成:根据被识别的对象产生一组原始特征⎧⎨⎩传感器的直接测量值模式空间计算值(波形、数字图象)例如:细胞识别⎧⎫⎪⎪⎪⎪⎯⎯⎯→⎨⎬⎪⎪⎪⎪⎩⎭计算通过图象输入得到细胞的数字图象细胞面积总光密度原始特征胞核面积核浆比⎧⎨⇒⎩专家经验和知识方法数学方法筛选比较Y XT E E T ⇒::特征提取值(变换)器3.特征提取:通过映射或变换的方法,把模式空间的高维特征向量变成特征空间的低维特征。
2.特征选择:从一组特征中挑选出一些最有效的特征(过程)。
⎧⎪⎨⎪⎩特征评估标准解决特征选择与提取特征空间的维数优化过程⇒传感器特征形成特征选择与提取分类器⇒⇒⎯⎯⎯→决策→→→传感器特征形成特征选择与提取分类器⎯→⎯⎯→⎯⎯→⎯321Y Y Y ⎯→⎯⎯→⎯21X X ⎯⎯⎯→决策含有特征选择和提取的模式分类问题框图特征选择/提取降维过程信号6.2 类别可分性判据d D C ⇒特征选择/提取的任务:从D 个特征中选择出d个特征组合哪种组合最好准则衡量⇒找出:分类器错误率最小的那组特征(/)e i P p x ω⎧⎧⎪⎨⎨⎩⎪⎩计算理论上正确最有效的特征未知实际有困难希望找出一些使用的标准以衡量各类之间的可分性希望可分性准则满足下列几条要求:(1)与错误概率(或错误率上下界)有单调关系,这使取极值时其分类错误率也较小。
(2)度量特性:0, , 0, , ij ij ij jiij ij J i j J i j J J J i j J >≠===⎧⎨⎩当时不同类当时同类其中是第类和第类的可分性准则函数,类内分离度小越大,两类的分离程度就越大类间分离度大(3)单调性:加入新的特征时,准则函数不减小。
模式识别特征选择与提取中国矿业大学计算机科学与技术学院电子信息科学系班级:信科11-1班,学号:08113545,姓名:褚钰博联系方法(QQ或手机):390345438,e-mail:****************日期:2014 年06月10日摘要实际问题中常常需要维数约简,如人脸识别、图像检索等。
而特征选择和特征提取是两种最常用的维数约简方法。
特征选择是从某些事物中提取出本质性的功能、应用、优势等,而特征提取是对特征空间进行变换,将原始特征空间映射到低维空间中。
本文是对主成分分析和线性判别分析。
关键词:特征选择,特征提取,主成分分析,线性判别分析1.引言模式识别的主要任务是利用从样本中提取的特征,并将样本划分为相应的模式类别,获得好的分类性能。
而分类方法与分类器设计,都是在d(变量统一用斜体)维特征空间已经确定的前提下进行的。
因此讨论的分类器设计问题是一个选择什么准则、使用什么方法,将已确定的d维特征空间划分成决策域的问题。
对分类器设计方法的研究固然重要,但如何确定合适的特征空间是设计模式识别系统另一个十分重要,甚至更为关键的问题。
如果所选用的特征空间能使同类物体分布具有紧致性,即各类样本能分布在该特征空间中彼此分割开的区域内,这就为分类器设计成功提供良好的基础。
反之,如果不同类别的样本在该特征空间中混杂在一起,再好的设计方法也无法提高分类器的准确性。
本文要讨论的问题就是特征空间如何设计的问题。
基于主成分分析的特征选择算法的思想是建立在这样的基础上的:主成分分析方法将原始特征通过线性变换映射到新的低维空间时,获得的主成分是去了新的物理意义,难以理解,并且主成分是所有原始特征的线性组合。
所以将主成分分析与特征选择相结合,设计多种相似性度量准则,通过找到与主成分相关的关键特征或者删除冗余、不相关以及没有意义的特征,将主成分又重新映射到原始空间,来理解成主成分的实际意义。
基于线性判别分析的高维特征选择将单个特征的Fisher准则与其他特征选择算法相结合,分层消除不相关特征与冗余特征。
不相关特征滤波器按照每个特征的Fisher评价值进行特征排序,来去除噪音和不相关特征。
通过对高维数据特征关联性的分析,冗余特征滤波器选用冗余度量方法和基于相关性的快速过滤器算法。
分别在不同情境下进行数据分类实验,验证其性能。
2.原理分析对一原始特征来说,特征选择的方案很多,从N 维特征种选择出M 个特征共有()!!!M N N C M N M =-中选法,其中哪一种方案最佳,则需要有一个原则来进行指导。
我们进行特征选择和特征提取的最终目的还是要进行识别,因此应该是以对识别最有利原则,这样的原则我们称为是类别的可分性判据。
用这样的可分性判据可以度量当前特征维数下类别样本的可分性。
可分性越大,对识别越有利,可分性越小,对识别越不利。
人们对的特征的可分性判据研究很多下面几种常用的判据,我们需要根据实际问题,从中选择出一种。
一般来说,我们希望可分性判据满足以下几个条件:1. 与识别的错误率由直接的联系,当判据取最大值时,识别的错误率最小;2. 当特征独立时有可加性,即:)(),,,(121K NK ij N ij x J x x x J ∑==ij J 是第i 类和第j 类的可分性判据,ij J 越大,两类的可分程度越大,()12,,,N x x x 为N 维特征;3. 应具有某种距离的特点:0ij J >,当i j ≠时; 0ij J =,当i j =时;ij ji J J =;4. 单调性,加入新的特征后,判据不减小:()()12121,,,,,,,ij N ij N N J x x x J x x x x +≤。
但是遗憾的是现在所经常使用的各种判据很难满足上述全部条件,只能满足一个或几个条件。
特征提取又称为特征变换,最常采用的特征变换是线性变换,即若DR x ∈是D 维原始特征,变换后的d 维新特征dR y ∈为x W y T= , 其中,W 是d ⨯D 维矩阵,称作变换阵。
特征提取就是根据训练样本求适当的W ,使得某种特征变换准则最优。
主成分分析方法的出发点是从一组特征中计算出一组按重要性从大到小排序的新特征,他们是原有特征的线性组合,并且相互之间是不相关的。
记p x x x ,,,21 为p 个原始特征,设新特征ξ,i=1, ,p 是这些原始特征的线性组合 x x T i j pj ij i ααξ==∑=1,为了统一i ξ的尺度,要求线性组合的模为1,即1=i T i αα,写成矩阵形式是 x A T=ξ,其中,ξ是由新特征i ξ组成的向量,A 是特征变换矩阵。
要求解的是最优的正交变换A ,它使新特征i ξ的方差达到极值。
3.理论证明或说明特征选择的基本框图为:一个典型的特征选择算法通常包括四个人基本步骤:1.子集产生,这是一个搜索过程,通过一定的搜索策略产生候选的特征子集。
2.子集评价,每一个候选的特征子集都根据一定的评价准则得到,并与先前的最优特征子集进行比较。
3.终止条件,算法结束所需要满足的条件,它与子集的产生过程和评价准则的选用有关。
4.结果验证,就是根据一定的先验知识或通过合成现实数据集的测试来证明所选择的特征子集的性能。
基于特征提取主成分分析变换矩阵的一般过程:训练数据全集4.实现方法或步骤流程特征选择顺序前进法每次从未入选的特征中选择一个特征,使得它与已入选的特征组合到一起所得到的可分性判据最大,直到特征数增加到M 为止。
用k X 表示在第k 步时的特征集合,搜索算法如下:1) 开始时,0X =∅,从N 个特征中选择一个()i J x 最大的特征,加入已选特征集,{}1i X x =; 2) 在第k 步,k X 中包含已经选择的k 个特征,对未入选的N k -个特征计算,{}()kjJ X x ,其中1,2,,j N k =-,并且按照由大到小排序,将可分性判据最大的特征l x 加入k X ,{}1k kl X X x +=;3) 直到所选的特征数等于M 为止。
特征抽取的方法—基于离散K-L 变换(DKLT)的特征抽取: 设原始特征为N 为矢量()12,,,TN x x x =X ,均值矢量[]E =m X ,相关矩阵T E ⎡⎤=⎣⎦X R XX ,协方差矩阵()()TE ⎡⎤=--⎣⎦X C X m X m 。
我们可以对X 作如下的标准正交变换,将其变为矢量()12,,,TN y y y =Y :12T T T N ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦T T TY =T X X TY 的每个分量:T i i y =T X ,其中T 为一个N N ⨯的标准正交矩阵,i T 为其第i 个列矢量,1,0,T i j i ji j=⎧=⎨≠⎩T T 。
也就是说Y 的每个分量是X 每一个分量的线性组合。
同样X 可以表示为:()()112121NT N i i i N y y y y -=⎡⎤⎢⎥⎢⎥====⎢⎥⎢⎥⎢⎥⎣⎦∑X T Y TY T T T T我们要进行特征提取,也就是要用Y 的M 项来代替X ,这种代替必然带来误差,下面我们来对这个误差进行估计:令:1ˆMi ii y ==∑X T ,1M N ≤<,引入的均方误差为: ()()()2211N NTTi i i i M i M e M E E y E y y =+=+⎡⎤⎡⎤⎡⎤=--==⎣⎦⎣⎦⎢⎥⎣⎦∑∑X XX X 11NNTTTii ii i M i M E =+=+⎡⎤==⎣⎦∑∑XTXX T T RT这又变成一个优化问题,我们希望寻找到一个标准正交矩阵T ,使得()2e M 最小,因此可以去这样的准则函数:()111NNT T ii iiii M i M J λ=+=+=--∑∑XT RT T T第一项保证均方误差最小,第二项保证T 为标准正交矩阵,i λ为一待定常数。
()i i iJλ∂=-=∂X R I T 0T ,1,,i M N =+即:i i i λ=X R T T ,很明显i λ为相关矩阵X R 的特征值,i T 为对应于i λ的特征矢量,由于X R 是一个实对称矩阵,所以12,,.N T T T 相互正交,T 为一个正交矩阵。
均方无差:()2111NN NT T ii ii iii M i M i M e M λλ=+=+=+===∑∑∑XT RT T T根据矩阵论,有这样的结论:一个N N ⨯的正定实对称矩阵有N 个特征值和特征矢量,这些特征矢量之间是正交的。
相关矩阵X R 就是一个实对称矩阵,当训练样本足够多时,也可以满足正定性,根据上式我们知道,当要从N 维特征中提取出M 维特征时,我们只需要统计出特征相关矩阵X R ,然后计算其特征值和特征矢量,选择对应特征值最大的前M 个特征矢量作成一个N M ⨯特征变换矩阵T ,就可以完成特征提取。
步骤如下:1、 利用训练样本集合估计出相关矩阵T E ⎡⎤=⎣⎦X R XX ;2、 计算X R 的特征值,并由大到小排序:12N λλλ≥≥≥,以及相应的特征矢量:12,,,N T T T ;3、 选择前M 个特征矢量作成一个变换矩阵[]12M =T T T T ;4、 在训练和识别时,每一个输入的N 维特征矢量X 可以转换为M 维的新特征矢量:TY =T X 。
这种方法是利用相关矩阵X R 进行变换,同样也可以利用协方差矩阵X C 进行变换,还可以利用样本的散度矩阵W S ,B S ,T S 或者1W B -S S 进行变换。
过程都是一样的,需要计算特征值和特征向量,选择最大的M 个特征值对应的特征矢量作出变换矩阵。
5.实验设计和结果分析基于特征相关性的特征选择算法选择c 均值聚类算法来去除冗余。
C 均值算法的基本思想即是通过迭代寻找c 个聚类的一种划分方案,使得用这c 个聚类的均值来代表相应各类样本时所得到的总体误差最小。
C 均值算法的基础是最小误差平方和准则。
若i N 是第i 聚类i Γ中的样本数目,i m 是这些样本的均值,即∑Γ∈=iy ii y N m 1把iΓ中的各样本y 与均值i m 间的误差平方和对所有类相加后为21e ∑∑=Γ∈-=ci y i im y Je J 是误差平方和聚类准则,它是样本集y 和类别集Ω的函数。
C 均值算法的步骤:1.选择初始划分,并计算每个聚类的均值以及误差平方和;2.选择一个备选样本y ,设y i Γ∈;X1the first results of kmeansX2X 3X1X2X 31.无论在聚类时,初始均值如何选取,在程序结果中总能得到相同的分类结果,同时e J 的结果相差很小。
2.当各聚类设定的初始均值不同时,程序结果经过的步骤不同。
3.e J 是随着聚类数目的增加而单调的减少的,当聚类数目等于样本数时e J =0,即每个样本自己成一类。