是剔除r个特征。这样的效果要比每次加1或减1的效果好,但是
计算量要增大。
另外一种改进方法是将SFS和SBS结合,先使用SFS算法逐个选入l个最佳特征,然后使用SBS算法逐个剔除r个最差特征,lr,再使用SFS算法增加l个特征,再使用SBS剔除r个特征,…,直到选出M个特征为止。
54特征提取
特征抽取的方法很多,下面我们以其中的一种基于离散KL变换DKLT的特征抽取,其它方法与此类似。
设原始特征为N为矢量Xx1x2LxNT,均值矢量mEX,相关矩阵
RX
E
XXT
,协方差矩阵CX
E
X
mX
mT
。
我们可以对X作如下的标准正交变换,将其变为矢量Yy1y2LyNT
fY
TT
X
TT12TT
M
X
TNT
Y的每个分量:yiTiTX,其中T为一个NN的标准正交矩阵,Ti为其第i个列矢
量,TiTTj
10
ij。也就是说Y的每个分量是X每一个分量的线性组合。
ij
同样X可以表示为:
XTT1YTYT1T2L
y1
TN
y2
M
Ni1
yiTi
yN
我们要进行特征提取,也就是要用Y的M项来代替X,这种代替必然带来误差,下面
我们来对这个误差进行估计:
M
令:XyiTi,1MN,引入的均方误差为:i1
e2
M
E
XXT
X
X
NiM
1
E
yi2
NiM
1
E
yi
yiT
N
N
TiTEXXTTi
TiTRXTi
iM1
iM1
这又变成一个优化问题,我们希望寻找到一个标准正交矩阵T,使得e2M最小,因
此可以去这样的准则函数:
N
N
J
TiTRXTi
iTiTTi1
iM1
iM1
第一项保证均方误差最小,第二项保证T为标准正交矩阵,i为一待定常数。
JTi
RX
iITi
0,i
M
1L
N
即:RXTiiTi,很明显i为相关矩阵RX的特征值,Ti为对应于i的特征矢量,由
于RX是一个实对称矩阵,所以T1T2LTN相互正交,T为一个正交矩阵。均方无差:
N
N
N
e2M
TiTRXTi
TiTiTi
i
iM1
iM1
iM1
f根据矩阵论,有这样的结论:一个NN的正定实对称矩阵有N个特征值和特征矢量,这些特征矢量之间是正交的。相关矩阵RX就是一个实对称矩阵,当训练样本足够多时,也可以满足正定性,根据上式我们知道,当要从N维特征中提取出M维特征时,我们只需要统计出特征相关矩阵RX,然后计算其特征值和特征矢量,选择对应特征值最大的前M个特征矢量作成一个NM特征变换矩阵T,就可以完成特征提取。步骤如下:
1、利用训练样本集合估计出相关矩阵RXEXXT;2、计算RX的特征值,并由大到小排序:12LN,以及相应的特征矢量:
T1T2LTN;
3、选择前M个特征矢量作成一个变换矩阵TT1T2LTM;
4、r