特征选择和提取
一、why
1、特征选择和提取是模式识别中的一个关键问题,特征的选择强烈影响分类器的设计及其性能。
2、在很多实际问题中,往往不容易找到那些最重要的特征,或受客观条件的限制,不能对它们进行有效的测量;因此在测量时,由于人们心理上的作用,只要条件许可总希望把特征取得多一些;另外,由于客观上的需要,为了突出某些有用信息,抑制无用信息,有意加上一些比值、指数或对数等组合计算特征;如果将数目很多的测量值不做分析,全部直接用作分类特征,不但耗时,而且会影响到分类的效果,产生“特征维数灾难”问题。
3、为了设计出效果好的分类器,通常需要对原始的测量值集合进行分析,经过选择或变换处理,组成有效的识别特征;在保证一定分类精度的前提下,减少特征维数,即进行“降维”处理,使分类器实现快速、准确和高效的分类。
4、特征选择和特征提取的目的都是为了尽可能保留识别信息的前提下,降低特征空间的维数,以达到有效的分类。
二、特征选择
1、含义
特征选择,就是从 n n n个度量集合 { x 1 , x 2 , x 3 , . . . , x n } \{x_1,x_2,x_3,...,x_n\} {x1,x2,x3,...,xn}中,按某一准则选取出供分类用的子集作为降维( m , m < n ) m,m<n) m,m<n)的分类特征。
2、选取准则
(1)、对于独立特征的选择准则
假设各原始特征测量值使统计独立的,此时,只需对训练样本的n个测量值独立地进行分析,从中选出m个最好的作为分类特征即可。
(2)、一般特征的散步矩阵准则
类内、类间的散步矩阵
S
w
和
S
b
S_w和S_b
Sw和Sb,类间离散度越大且类内离散度越小,可分性越好,散步矩阵准则
J
1
J_1
J1和
J
2
J_2
J2形式,使
J
1
或
J
2
J_1或J_2
J1或J2最大的子集可作为所选择的分类特征。计算的散步矩阵不受模式分布形式的限制,但是需要有足够数量的模式样本才能获得有效的结果。
J
1
=
d
e
t
(
S
w
−
1
S
b
)
=
∏
i
λ
i
J_1=det(S_w^{-1}S_b)=\prod\limits_{i}\lambda_i
J1=det(Sw−1Sb)=i∏λi
J
2
=
t
r
(
S
w
−
1
S
b
)
=
∑
i
λ
i
J_2=tr(S_w^{-1}S_b)=\sum\limits_{i}\lambda_i
J2=tr(Sw−1Sb)=i∑λi
三、特征提取
1、含义
特征提取,就是使 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)通过某种变换,产生 m m m个特征作为新的分类特征。
单纯的特征选择简单删掉某几个特征的做法不理想,因为一般来说,原来的n个特征各自在不同程度上反映了识别对象的某些特征,简单删去某些特征可能会丢失较多的有用信息。如果将原来的特征做正交变换,获得的每个数据都是原来n个数据的线性组合,然后从新的数据中选出少数几个,使其尽可能多地反映各类模式之间的差异,而这些特征间又尽可能相互独立,则比单纯的选择方法更灵活、更有效。K-L变换就是一种适用于任意概率密度函数的正交变换。
2、K-L变换
2.1离散形式的K-L变换
x = ( x ( 1 ) , x ( 2 ) , . . . x ( n ) ) T φ j = ( φ j ( 1 ) , φ j ( 2 ) , . . . φ j ( n ) ) T 其 中 φ j 为 正 交 向 量 , 即 : φ i ⋅ φ j = { 1 , i f i = j 0 , e l s e x=(x(1),x(2),...x(n))^T\\\varphi_j=(\varphi_j(1),\varphi_j(2),...\varphi_j(n))^T\\其中\varphi_j为正交向量,即:\\\varphi_i\cdot\varphi_j=\left\{\begin{array}{l}1,if~i=j\\0,else\end{array}\right. x=(x(1),x(2),...x(n))Tφj=(φj(1),φj(2),...φj(n))T其中φj为正交向量,即:φi⋅φj={1,if i=j0,else
则
x
x
x可表示为:
x
=
∑
i
=
1
N
a
i
φ
i
=
Φ
a
x=\sum\limits_{i=1}^Na_i\varphi_i=\Phi a
x=i=1∑Naiφi=Φa
其中,
a
=
(
a
1
,
a
2
,
.
.
.
,
a
n
)
T
Φ
=
(
φ
1
,
φ
2
,
.
.
.
φ
n
)
=
(
φ
1
(
1
)
φ
2
(
1
)
.
.
.
φ
n
(
1
)
.
.
.
φ
1
(
n
)
φ
2
(
n
)
.
.
.
φ
n
(
n
)
)
a=(a_1,a_2,...,a_n)^T\\~~~~~~~\Phi=(\varphi_1,\varphi_2,...\varphi_n)\\~~~~~~~~~~~=\begin{pmatrix}\varphi_1(1)&\varphi_2(1)&...&\varphi_n(1)\\~&~&...&~\\\varphi_1(n)&\varphi_2(n)&...&\varphi_n(n)\end{pmatrix}
a=(a1,a2,...,an)T Φ=(φ1,φ2,...φn) =⎝⎛φ1(1) φ1(n)φ2(1) φ2(n).........φn(1) φn(n)⎠⎞
2.2正交向量集的确定
设随机向量
x
x
x的总体自相关矩阵为
R
=
E
(
x
x
T
)
R=E(xx^T)
R=E(xxT)
因为
x
=
∑
i
=
1
n
a
i
φ
i
x=\sum\limits_{i=1}^na_i\varphi_i
x=i=1∑naiφi
⇒
R
=
E
(
Φ
a
a
T
Φ
T
)
=
Φ
E
(
a
a
T
)
Φ
T
\Rightarrow R=E(\Phi aa^T\Phi^T)=\Phi E(aa^T)\Phi^T
⇒R=E(ΦaaTΦT)=ΦE(aaT)ΦT
因为要进行特征提取,要求系数向量
a
a
a的各个不同分量应统计独立,即应使
(
a
1
,
a
2
,
.
.
.
,
a
n
)
(a_1,a_2,...,a_n)
(a1,a2,...,an)满足:
E
(
a
i
a
j
)
=
{
λ
i
,
i
f
i
=
j
0
,
e
l
s
e
E(a_ia_j)=\left\{\begin{array}{l}\lambda_i,if~i=j\\0,else\end{array}\right.
E(aiaj)={λi,if i=j0,else
⇒ \Rightarrow ⇒即 E ( a a T ) = D λ ( 对 角 形 式 矩 阵 ) , 即 D λ = [ λ 1 0 0 . . . 0 0 λ 2 0 . . . 0 . . . 0 0 0 . . . λ n ] E(aa^T)=D_\lambda(对角形式矩阵),即D_\lambda=\begin{bmatrix}\lambda_1&0&0&...&0\\0&\lambda_2&0&...&0\\~&~&~&...&~\\0&0&0&...&\lambda_n\end{bmatrix} E(aaT)=Dλ(对角形式矩阵),即Dλ=⎣⎢⎢⎡λ10 00λ2 000 0............00 λn⎦⎥⎥⎤
⇒ R = Φ D λ Φ T \Rightarrow R=\Phi D_\lambda \Phi^T ⇒R=ΦDλΦT
因为 Φ \Phi Φ中的各个向量都相互归一正交
⇒ R Φ = Φ D λ Φ T Φ = Φ D λ ⇒ R φ i = λ i φ i ⇒ λ i 是 R 的 特 征 值 , φ i 是 特 征 值 对 应 的 特 征 向 量 \Rightarrow R\Phi=\Phi D_\lambda \Phi^T\Phi=\Phi D_\lambda\\\Rightarrow R\varphi_i=\lambda_i\varphi_i\\\Rightarrow \lambda_i是R的特征值,\varphi_i是特征值对应的特征向量 ⇒RΦ=ΦDλΦTΦ=ΦDλ⇒Rφi=λiφi⇒λi是R的特征值,φi是特征值对应的特征向量
因为
R
R
R是实对称矩阵,其不同特征值对应的特征向量正交,即:
φ
i
φ
j
=
{
1
i
f
i
=
j
0
e
l
s
e
⇒
满
足
φ
i
为
正
交
向
量
的
要
求
,
即
找
到
正
交
向
量
集
合
φ
⇒
a
=
Φ
T
x
\varphi_i\varphi_j=\left\{\begin{array}{l}1~~if~i=j\\0~~else\end{array}\right.\\\Rightarrow 满足\varphi_i为正交向量的要求,即找到正交向量集合{\varphi}\\\Rightarrow a=\Phi^Tx
φiφj={1 if i=j0 else⇒满足φi为正交向量的要求,即找到正交向量集合φ⇒a=ΦTx
此时,得到特征的线性组合a,实际上完成了特征变换。但是此时维度不变,仍然为n维,因此实际特征变换时还要对a进行选择。
2.3K-L展开式系数的计算步骤
(1)、求随机向量 x x x的自相关矩阵: R = E ( x x T ) R=E(xx^T) R=E(xxT)
(2)、求出矩阵
R
R
R的特征值
λ
i
\lambda_i
λi和特征向量
φ
i
\varphi_i
φi,得到矩阵:
Φ
=
(
φ
1
,
φ
2
,
.
.
.
,
φ
n
)
\Phi=(\varphi_1,\varphi_2,...,\varphi_n)
Φ=(φ1,φ2,...,φn)
(3)、计算展开式系数:
a
=
Φ
T
x
a=\Phi^Tx
a=ΦTx
2.4基于K-L变换的特征提取
使用K-L变换得到的每一个展开式系数为向量 x x x的线性组合,系数由正交向量 φ \varphi φ确定,即特征提取,但是维数不变。若减少 φ \varphi φ的数量,那么得到的系数数量小于n,达到了降维的目的。
则向量 φ \varphi φ应该如何选择使得降维效果最好?
⇒ \Rightarrow ⇒希望降维之后得到的新向量在最小均方误差条件下接近原来的向量 x x x。
对于
x
=
∑
i
=
1
n
a
i
φ
i
x=\sum\limits_{i=1}^na_i\varphi_i
x=i=1∑naiφi,现仅取
m
m
m项,对略去的系数项用预先选定的常数
b
b
b代替,此时
x
x
x的估计值为:
x
^
=
∑
i
=
1
m
a
i
φ
i
+
∑
i
=
m
+
1
n
a
i
φ
i
⇒
误
差
Δ
x
=
x
−
x
^
=
∑
i
=
m
+
1
n
(
a
i
−
b
)
φ
i
⇒
均
方
误
差
ϵ
2
=
E
(
(
Δ
x
)
2
)
=
∑
i
=
m
+
1
n
E
(
a
i
−
b
)
2
⇒
m
i
n
ϵ
2
⇒
∂
E
(
a
i
−
b
)
2
∂
b
=
0
⇒
b
=
E
[
a
i
]
⇒
ϵ
2
=
∑
i
=
m
+
1
n
E
(
a
i
−
E
[
a
i
]
)
2
=
∑
i
=
m
+
1
n
φ
i
T
E
[
(
x
−
E
(
x
)
)
(
x
−
E
(
x
)
)
T
]
φ
i
=
∑
i
=
m
+
1
n
φ
i
T
C
x
φ
i
\hat{x}=\sum\limits_{i=1}^ma_i\varphi_i+\sum\limits_{i=m+1}^na_i\varphi_i\\\Rightarrow 误差\Delta x=x-\hat{x}=\sum\limits_{i=m+1}^n(a_i-b)\varphi_i\\\Rightarrow 均方误差\epsilon^2=E((\Delta x)^2)=\sum\limits_{i=m+1}^nE(a_i-b)^2\\\Rightarrow min~\epsilon^2\\\Rightarrow \frac{\partial{E(a_i-b)^2}}{\partial{b}}=0\\\Rightarrow b=E[a_i]\\\Rightarrow \epsilon^2=\sum\limits_{i=m+1}^nE(a_i-E[a_i])^2=\sum\limits_{i=m+1}^n\varphi_i^TE[(x-E(x))(x-E(x))^T]\varphi_i=\sum\limits_{i=m+1}^n\varphi_i^TC_x\varphi_i
x^=i=1∑maiφi+i=m+1∑naiφi⇒误差Δx=x−x^=i=m+1∑n(ai−b)φi⇒均方误差ϵ2=E((Δx)2)=i=m+1∑nE(ai−b)2⇒min ϵ2⇒∂b∂E(ai−b)2=0⇒b=E[ai]⇒ϵ2=i=m+1∑nE(ai−E[ai])2=i=m+1∑nφiTE[(x−E(x))(x−E(x))T]φi=i=m+1∑nφiTCxφi
其中
C
x
C_x
Cx为协方差矩阵,
φ
i
{\varphi_i}
φi为正交向量,
C
x
C_x
Cx与
φ
i
\varphi_i
φi的关系可有Lagrange方法得到:
m
i
n
ϵ
2
s
.
t
φ
i
⋅
φ
i
=
1
φ
i
⋅
φ
j
=
0
⇒
L
a
g
r
a
n
g
e
⇒
L
(
φ
i
,
α
i
,
β
i
)
=
φ
i
T
C
x
φ
i
+
α
i
(
φ
i
⋅
φ
i
−
1
)
+
β
i
φ
i
φ
j
⇒
∂
L
∂
φ
i
=
0
⇒
2
C
x
φ
i
+
2
α
i
φ
i
+
β
i
φ
j
=
0
,
乘
上
φ
j
T
⇒
2
C
x
φ
i
φ
j
T
+
2
α
i
φ
i
φ
j
T
+
β
i
φ
j
φ
j
T
=
0
⇒
β
i
=
0
⇒
C
x
φ
i
=
−
α
i
φ
i
⇒
C
x
φ
i
=
λ
i
φ
i
⇒
φ
i
为
C
x
的
特
征
向
量
,
特
征
值
为
λ
i
⇒
因
为
φ
i
T
φ
i
=
1
⇒
φ
i
T
C
x
φ
i
=
λ
i
⇒
ϵ
2
=
∑
i
=
1
n
λ
i
⇒
λ
i
越
小
则
误
差
越
小
min~\epsilon^2\\s.t~\varphi_i\cdot\varphi_i=1\\~~~~~\varphi_i\cdot\varphi_j=0\\\Rightarrow Lagrange\\\Rightarrow L(\varphi_i,\alpha_i,\beta_i)=\varphi_i^TC_x\varphi_i+\alpha_i(\varphi_i\cdot\varphi_i-1)+\beta_i\varphi_i\varphi_j\\\Rightarrow\frac{\partial{L}}{\partial{\varphi_i}}=0\\\Rightarrow 2C_x\varphi_i+2\alpha_i\varphi_i+\beta_i\varphi_j=0,乘上\varphi_j^T\\\Rightarrow 2C_x\varphi_i\varphi_j^T+2\alpha_i\varphi_i\varphi_j^T+\beta_i\varphi_j\varphi_j^T=0\\\Rightarrow \beta_i=0\\\Rightarrow C_x\varphi_i=-\alpha_i\varphi_i\\\Rightarrow C_x\varphi_i=\lambda_i\varphi_i\\\Rightarrow \varphi_i为C_x的特征向量,特征值为\lambda_i\\\Rightarrow 因为\varphi_i^T\varphi_i=1\\\Rightarrow \varphi_i^TC_x\varphi_i=\lambda_i\\\Rightarrow \epsilon^2=\sum\limits_{i=1}^n\lambda_i\\\Rightarrow \lambda_i越小则误差越小
min ϵ2s.t φi⋅φi=1 φi⋅φj=0⇒Lagrange⇒L(φi,αi,βi)=φiTCxφi+αi(φi⋅φi−1)+βiφiφj⇒∂φi∂L=0⇒2Cxφi+2αiφi+βiφj=0,乘上φjT⇒2CxφiφjT+2αiφiφjT+βiφjφjT=0⇒βi=0⇒Cxφi=−αiφi⇒Cxφi=λiφi⇒φi为Cx的特征向量,特征值为λi⇒因为φiTφi=1⇒φiTCxφi=λi⇒ϵ2=i=1∑nλi⇒λi越小则误差越小
从上面的分析可以看出,选取正交向量集 { φ } \{\varphi\} {φ}时,是随机向量 x x x的自相关矩阵的特征向量;但是从最小均方误差的角度看,要使误差最小,则 { φ } \{\varphi\} {φ}应为协方差矩阵的特征向量,为达到一致,在进行K-L变换前需要对变量进行变换。即在将整体模式进行K-L变换之前,应先将其均值作为坐标轴原点,采用协方差矩阵C或者自相关矩阵R来计算特征值,此时才能得到最好的结果,进行特征变换时的特征是移动之后的特征。
2.5总结
1、K-L变换
首先若
E
[
x
]
≠
0
⇒
x
=
x
−
E
[
x
]
E[x]\ne0\Rightarrow x=x-E[x]
E[x]=0⇒x=x−E[x]
将K-L展开式系数
a
i
a_i
ai(亦即变换后的特征)用
y
i
y_i
yi表示,写成向量形式:
y
=
Φ
T
x
y=\Phi^Tx
y=ΦTx。此时变换矩阵
Φ
\Phi
Φ用m个特征向量组成。为使误差最小,不采用的特征向量,其对应的特征值应尽可能小。因此,将特征值按大小次序标号,即
λ
1
>
λ
2
>
…
>
λ
m
>
…
>
λ
n
>
=
0
\lambda_1> \lambda_2>…> \lambda_m>…> \lambda_n>=0
λ1>λ2>…>λm>…>λn>=0
若首先采用前面的m个特征向量,便可使变换误差最小。
2、通过K-L变换能获得互不相关的新特征。若采用较大特征值对应的特征向量组成变换矩阵,则能对应地保留原模式中方差最大的特征成分,所以K-L变换起到了减小相关性、突出差异性的效果。在此情况下,K-L变换也成为主成分分析(PCA变换)。但是采用K-L变换作为模式分类的特征提取时,要特别注意保留不同类被的模式分类鉴别信息,仅单纯考虑尽可能代表原来模式的主成分,有时并不一定有利于分类的鉴别。
done!