当前位置:文档之家› 特征选择与特征提取

特征选择与特征提取

模式类别的可分性判据在讨论特征选择和特征压缩之前,我们先要确定一个选择和提取的原则。

对一个原始特征来说,特征选择的方案很多,从N 维特征种选择出M 个特征共有()!!!MNN C M N M =-中选法,其中哪一种方案最佳,则需要有一个原则来进行指导。

同样,特征的压缩实际上是要找到M 个N 元函数,N 元函数的数量是不可数的,这也要有一个原则来指导找出M 个最佳的N 元函数。

我们进行特征选择和特征提取的最终目的还是要进行识别,因此应该是以对识别最有利原则,这样的原则我们称为是类别的可分性判据。

用这样的可分性判据可以度量当前特征维数下类别样本的可分性。

可分性越大,对识别越有利,可分性越小,对识别越不利。

人们对的特征的可分性判据研究很多,然而到目前为止还没有取得一个完全满意的结果,没有哪一个判据能够完全度量出类别的可分性。

下面介绍几种常用的判据,我们需要根据实际问题,从中选择出一种。

一般来说,我们希望可分性判据满足以下几个条件:1. 与识别的错误率由直接的联系,当判据取最大值时,识别的错误率最小;2. 当特征独立时有可加性,即:()()121,,,Nij Nij k k J x x x J x ==∑ijJ 是第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 +≤ 。

但是遗憾的是现在所经常使用的各种判据很难满足上述全部条件,只能满足一个或几个条件。

基于矩阵形式的可分性判据 1. 类内散度矩阵设有M 个类别,1,,M ΩΩ ,i Ω类样本集()()(){}12,,,ii i i N X X X ,i Ω类的散度矩阵定义为:()()()()()()()11iN Ti i i i i w k k k iS N ==--∑X mX m总的类内散度矩阵为:()()()()()()()()()1111iN MMTi i i i i w iwikki i k i S P SP N ====Ω=Ω--∑∑∑XmXm2. 类间散度矩阵第i 个类别和第j 个类别之间的散度矩阵定义为:()()()()()()()Tij i j i j BS =--mmmm总的类间散度矩阵可以定义为:()()()()()()()()()()()11111122M MM Mij ijijB ijBiii j i j S P P S P P =====ΩΩ=ΩΩ--∑∑∑∑m m m m令:m 为总体均值,()()1Mi i i P ==Ω∑m m ,则有:()()()()()1MTi i B i i S P ==Ω--∑mmmm3. 总体散度矩阵总体散度矩阵可以定义为:()()11NTT ll l S N==--∑Xm X m其中N 为总的样本数,1Mii NN ==∑。

可以证明:TW BSS S =+。

可以看出三个散度矩阵均为实对称矩阵。

上面我们所定义的判据:()d J X =()()()tr tr d T WB J S S S ==+X 。

tr表示取一个矩阵的迹,也就是主对角线元素之和,N 维方阵A 的迹为:()1tr Niii a =A =∑同样我们可以利用三个散度矩阵定义出一系列的可分性判据:()11tr W B J S S -=2B WS J S =()()3tr tr B WS J S =其中Α表示方阵Α的行列式的值,比较常用的判据是1J 。

基于几何距离的可分性判据计算起来比较简单,只要我们已知各个类别的训练样本集,就可以计算出三个散度矩阵,同时也就可以计算出各种可分性判据。

特征选择所谓特征选择,就是从一组数量为N 的特征中选择出一组数量为M的最优特征,(NM>)这里有两个问题要解决,1、选择一种可分性判据作为最优特征选择的标准;2、找到一个好的算法,来选择出这组最优特征。

下面我们就来介绍几种特征选择的算法。

一个最简单的思路是:我们假设N 个特征之间相互独立,并且使用的可分性判据满足可加性:()()1Ni i J J x ==∑X ,这时候我们只要把N 个特征每个单独使用时的可分性判据()i J x 计算出来,然后从大到小排序:()()()12N J x J x J x >>> ,选择出前M 个特征就是一组最优的特征。

然而问题往往没有这么简单,这种特征独立性假设多数情况下并不成立,并且可分性判据也不一定满足可加性。

另外一个简单的思路是(穷举法):对从N 中选择出M 个特征的所有组合情况都计算其可分性判据,然后选择出其中的最大者作为解决方案。

当N 的数值比较小时,这种方法一定是可行的,然而当N 比较大时,这个组合数会非常大,比如100N =,10M =时,组合数的数量级是310,当20N=,10M=时,组合数为184756。

将所有的组合都计算一遍显然是不现实的。

因此我们需要有一个搜索算法来进行特征选择。

次优搜索算法1. 顺序前进法(Sequential Forward Selection, SFS )每次从未入选的特征中选择一个特征,使得它与已入选的特征组合到一起所得到的可分性判据最大,直到特征数增加到M 为止。

用k X 表示在第k 步时的特征集合,搜索算法如下: 1) 开始时,0X =∅,从N 个特征中选择一个()i J x 最大的特征,加入已选特征集,{}1i X x =;2) 在第k 步,k X 中包含已经选择的k 个特征,对未入选的Nk-个特征计算,{}()k j J X x ,其中1,2,,j N k =- ,并且按照由大到小排序,将可分性判据最大的特征l x 加入k X ,{}1k k l X X x += ;3) 直到所选的特征数等于M 为止。

2. 顺序后退法 (Sequential Backward Selection, SBS)同顺序前进法的过程刚好相反,最开始时取{}01,,N X x x = ,每次从中剔除一个特征,使得剩余的特征可分性判据最大。

3. 增l 减r 法(l r -法)前两种方法可以进一步改进,比如每次不是加入1个特征,而是加入l 个特征;或者每次不是剔除一个特征,而是剔除r 个特征。

这样的效果要比每次加1或减1的效果好,但是计算量要增大。

另外一种改进方法是将SFS 和SBS 结合,先使用SFS 算法逐个选入l 个最佳特征,然后使用SBS 算法逐个剔除r 个最差特征,l r >,再使用SFS 算法增加l 个特征,再使用SBS 剔除r 个特征,…,直到选出M 个特征为止。

特征提取特征抽取的方法很多,下面我们以其中的一种—基于离散K-L 变换(DKLT)的特征抽取,其它方法与此类似。

设原始特征为N 为矢量()12,,,TN x x x =X ,均值矢量[]E =m X ,相关矩阵T E ⎡⎤=⎣⎦XR XX ,协方差矩阵()()TE ⎡⎤=--⎣⎦XC X m X m 。

我们可以对X作如下的标准正交变换,将其变为矢量()12,,,TNy y y =Y :12T T T N⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦TT T Y =T X X TY的每个分量:Tii y =T X,其中T 为一个N N ⨯的标准正交矩阵,iT 为其第i 个列矢量,1,0,T i j i j i j=⎧=⎨≠⎩T T 。

也就是说Y 的每个分量是X 每一个分量的线性组合。

同样X 可以表示为:()()112121NTN i ii Ny y y y -=⎡⎤⎢⎥⎢⎥====⎢⎥⎢⎥⎢⎥⎣⎦∑X TY T Y T T T T我们要进行特征提取,也就是要用Y 的M 项来代替X ,这种代替必然带来误差,下面我们来对这个误差进行估计:令:1ˆMi ii y ==∑X T ,1MN≤<,引入的均方误差为:()()()2211N NTTii i i M i M eM E E y E y y =+=+⎡⎤⎡⎤⎡⎤=--==⎣⎦⎣⎦⎢⎥⎣⎦∑∑X XX X11N NTTTii i ii M i M E =+=+⎡⎤==⎣⎦∑∑X T XX T T R T这又变成一个优化问题,我们希望寻找到一个标准正交矩阵T ,使得()2e M 最小,因此可以去这样的准则函数:()111NNT Tii i i i i M i M J λ=+=+=--∑∑X T R T 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 为一个正交矩阵。

均方无差:()2111NNNTT ii ii i ii M i M i M eM λλ=+=+=+===∑∑∑X T R T T T根据矩阵论,有这样的结论:一个N N ⨯的正定实对称矩阵有N 个特征值和特征矢量,这些特征矢量之间是正交的。

相关矩阵X R 就是一个实对称矩阵,当训练样本足够多时,也可以满足正定性,根据上式我们知道,当要从N 维特征中提取出M 维特征时,我们只需要统计出特征相关矩阵X R ,然后计算其特征值和特征矢量,选择对应特征值最大的前M 个特征矢量作成一个N M ⨯特征变换矩阵T ,就可以完成特征提取。

步骤如下:1、 利用训练样本集合估计出相关矩阵TE ⎡⎤=⎣⎦XR XX ;2、 计算X R 的特征值,并由大到小排序:12Nλλλ≥≥≥ ,以及相应的特征矢量:12,,,N T T T ;3、 选择前M 个特征矢量作成一个变换矩阵[]12M=T T T T;4、 在训练和识别时,每一个输入的N 维特征矢量X 可以转换为M维的新特征矢量:T Y =T X 。

这种方法是利用相关矩阵X R 进行变换,同样也可以利用协方差矩阵X C 进行变换,还可以利用样本的散度矩阵W S ,B S ,T S 或者1WB -S S 进行变换。

过程都是一样的,需要计算特征值和特征向量,选择最大的M 个特征值对应的特征矢量作出变换矩阵。

相关主题