模式识别与机器学习课程笔记(8):特征提取与选择
模式识别与机器学习课程笔记(8):特征提取与选择
概述
在模式识别任务中,高维特征往往会引发“维数灾难”,而特征提取与选择是解决这一问题的核心技术。二者均以“保留关键分类信息、压缩特征维度”为目标,但实现路径存在本质差异。
1.1 核心问题:维数灾难
维数灾难是高维特征空间的固有缺陷,直接影响分类器性能,其核心表现可概括为三点:
- 性能波动:分类器精度随特征个数增长先上升后下降,当特征过多时,冗余信息会抵消有效信息的作用。
- 样本稀疏:随着特征维数增加,有限样本在空间中的分布会越来越稀疏,导致传统距离度量(如欧氏距离)失效。
- 计算激增:高维特征会大幅增加模型的计算复杂度和存储成本,例如1000维特征的处理成本远高于100维。
1.2 特征提取与选择的定义与区别
特征提取与选择均旨在从D维原始特征中获取d维有效特征(d<D),但操作逻辑完全不同。二者的核心差异如下表所示:
| 对比维度 | 特征选择 | 特征提取 |
|---|---|---|
| 核心操作 | 从原始特征中筛选子集 | 对原始特征进行线性/非线性变换 |
| 目标函数 | 使筛选出的子集满足可分性判据最大化 | 使变换后的子空间满足可分性判据最大化 |
| 数据完整性 | 保留原始特征的物理意义 | 可能丢失原始特征的物理意义(如PCA主成分) |
| 代表算法 | 分支定界法、Relief、SFS | 主成分分析(PCA)、独立成分分析(ICA)、LDA |
1.3 数学描述与核心原则
1.3.1 数学建模
给定n个D维原始数据点构成的集合
X
=
{
x
1
,
x
2
,
…
,
x
n
}
∈
R
D
×
n
X = \left\{ x _ { 1 } , x _ { 2 } , \ldots , x _ { n } \right\} \in \mathbb{R} ^ { D \times n }
X={x1,x2,…,xn}∈RD×n,特征提取与选择可统一描述为:
寻找映射
x
∈
R
D
→
P
y
∈
R
d
x \in \mathbb{R} ^ { D } \xrightarrow{P} y \in \mathbb{R} ^ { d }
x∈RDPy∈Rd(d<D),得到降维后的数据集合
Y
=
{
y
1
,
y
2
,
…
,
y
n
}
∈
R
d
×
n
Y = \left\{ y _ { 1 } , y _ { 2 } , \ldots , y _ { n } \right\} \in \mathbb{R} ^ { d \times n }
Y={y1,y2,…,yn}∈Rd×n。
其中,P在特征选择中是“筛选矩阵”(仅保留部分维度),在特征提取中是“变换矩阵”(如PCA的特征向量矩阵)。
1.3.2 核心原则
映射P的设计需遵循“可分性判据最大化”原则,即:
J
(
x
1
,
x
2
,
⋯
,
x
d
)
=
max
[
J
(
x
i
1
,
x
i
2
,
⋯
,
x
i
d
)
]
J ( x _ { 1 } , x _ { 2 } , \cdots , x _ { d } ) = \max \left[ J ( x _ { i _ { 1 } } , x _ { i _ { 2 } } , \cdots , x _ { i _ { d } } ) \right]
J(x1,x2,⋯,xd)=max[J(xi1,xi2,⋯,xid)]
式中
J
(
⋅
)
J(\cdot)
J(⋅)为可分性判据,用于衡量特征子集/变换后子空间的分类有效性(如类间距离、互信息等)。
1.3.3 本质理解
无论是提取还是选择,本质都是在D维原始空间 R D \mathbb{R}^D RD中寻找一个d维子空间 W W W。新特征的生成方式为:
- 子空间 W W W由基向量张成: W = Span { β 1 , β 2 , ⋯ , β d } W = \text{Span}\{\beta_1, \beta_2, \cdots, \beta_d\} W=Span{β1,β2,⋯,βd}( β i \beta_i βi为子空间的基)。
- 原始数据 x x x向 W W W投影,得到近似表示 x ^ = ∑ i = 1 d b i β i \hat{x} = \sum_{i=1}^d b_i \beta_i x^=∑i=1dbiβi,其中 b i b_i bi即为降维后的新特征值。
类别可分性判据
可分性判据是特征提取与选择的“指南针”,用于量化特征对分类任务的贡献度。其核心要求包括:与误判概率单调性(判据值越大,误判概率越低)、可加性(多特征贡献可叠加)、对特征数单调不减(增加特征不会降低判据值)。
2.1 基于几何距离的可分性判据
该类判据从“特征空间中类别分布的几何位置”出发,通过距离或离差矩阵衡量类别差异,适用于已知类别分布的场景。
2.1.1 核心概念
- 类内离差矩阵 S W S_W SW:描述同一类别内部样本的离散程度, S W = ∑ i = 1 c P ( ω i ) S i S_W = \sum_{i=1}^c P(\omega_i) S_i SW=∑i=1cP(ωi)Si( S i S_i Si为第i类的协方差矩阵, P ( ω i ) P(\omega_i) P(ωi)为第i类的先验概率)。
- 类间离差矩阵 S B S_B SB:描述不同类别均值之间的离散程度, S B = ∑ i = 1 c P ( ω i ) ( μ i − μ ) ( μ i − μ ) T S_B = \sum_{i=1}^c P(\omega_i) (\mu_i - \mu)(\mu_i - \mu)^T SB=∑i=1cP(ωi)(μi−μ)(μi−μ)T( μ i \mu_i μi为第i类均值, μ \mu μ为总体均值)。
- 总体离差矩阵 S T S_T ST:描述所有样本的总离散程度, S T = S W + S B S_T = S_W + S_B ST=SW+SB。
2.1.2 常用判据公式
基于上述矩阵,常用的可分性判据如下(均需最大化,除特别标注外):
J
1
=
Tr
[
S
W
−
1
S
B
]
(迹比判据,反映类间与类内离差的比值)
J_{1} = \text{Tr}\left[S_{W}^{-1} S_{B}\right] \quad \text{(迹比判据,反映类间与类内离差的比值)}
J1=Tr[SW−1SB](迹比判据,反映类间与类内离差的比值)
J
2
=
Tr
[
S
B
]
Tr
[
S
W
]
(迹的比值,简洁易计算)
J_{2} = \frac{\text{Tr}\left[S_{B}\right]}{\text{Tr}\left[S_{W}\right]} \quad \text{(迹的比值,简洁易计算)}
J2=Tr[SW]Tr[SB](迹的比值,简洁易计算)
J
3
=
Tr
[
S
W
−
1
S
T
]
(结合总体离差,间接反映类间差异)
J_{3} = \text{Tr}\left[S_{W}^{-1} S_{T}\right] \quad \text{(结合总体离差,间接反映类间差异)}
J3=Tr[SW−1ST](结合总体离差,间接反映类间差异)
J
4
=
∣
S
T
∣
∣
S
W
∣
(行列式比,反映矩阵的“体积”比)
J_{4} = \frac{\left|S_{T}\right|}{\left|S_{W}\right|} \quad \text{(行列式比,反映矩阵的“体积”比)}
J4=∣SW∣∣ST∣(行列式比,反映矩阵的“体积”比)
J
5
=
Tr
[
S
T
−
1
S
W
]
(需最小化,等价于最大化类间占比)
J_{5} = \text{Tr}\left[S_{T}^{-1} S_{W}\right] \quad \text{(需最小化,等价于最大化类间占比)}
J5=Tr[ST−1SW](需最小化,等价于最大化类间占比)
J
6
=
∣
S
T
−
1
S
W
∣
(需最小化,同J5的行列式形式)
J_{6} = \left|S_{T}^{-1} S_{W}\right| \quad \text{(需最小化,同J5的行列式形式)}
J6=
ST−1SW
(需最小化,同J5的行列式形式)
J
7
=
Tr
[
S
T
]
Tr
[
S
W
]
(总体与类内迹比,直观反映总离散度中类内占比)
J_{7} = \frac{\text{Tr}\left[S_{T}\right]}{\text{Tr}\left[S_{W}\right]} \quad \text{(总体与类内迹比,直观反映总离散度中类内占比)}
J7=Tr[SW]Tr[ST](总体与类内迹比,直观反映总离散度中类内占比)
2.2 基于概率密度函数的可分性判据
该类判据从“类别概率分布重叠程度”出发,通过积分量化两类概率密度函数(PDF)的差异,适用于已知或可估计PDF的场景。
2.2.1 核心要求
构造的判据 J p J_p Jp需满足三个条件:
- 非负性: J p ≥ 0 J_p \geq 0 Jp≥0;
- 极值性:当两类PDF完全不重叠时, J p = max J_p = \max Jp=max;当两类PDF完全重合时, J p = 0 J_p = 0 Jp=0;
- 对称性: J p ( ω 1 , ω 2 ) = J p ( ω 2 , ω 1 ) J_p(\omega_1, \omega_2) = J_p(\omega_2, \omega_1) Jp(ω1,ω2)=Jp(ω2,ω1)。
2.2.2 常用判据
-
Bhattacharyya判据:衡量两类PDF的平均重叠度,计算简便,适用于小样本场景:
J B = − ln [ ∫ R D p ( x ∣ ω 1 ) p ( x ∣ ω 2 ) d x ] J_B = -\ln \left[ \int_{\mathbb{R}^D} \sqrt{p(x|\omega_1) p(x|\omega_2)} dx \right] JB=−ln[∫RDp(x∣ω1)p(x∣ω2)dx]
式中 p ( x ∣ ω i ) p(x|\omega_i) p(x∣ωi)为第i类的PDF, J B J_B JB越大,两类重叠度越低。 -
Chernoff判据:Bhattacharyya判据的推广,引入参数 α ∈ [ 0 , 1 ] \alpha \in [0,1] α∈[0,1]控制两类权重:
J C = − ln [ ∫ R D p α ( x ∣ ω 1 ) p 1 − α ( x ∣ ω 2 ) d x ] J_C = -\ln \left[ \int_{\mathbb{R}^D} p^\alpha(x|\omega_1) p^{1-\alpha}(x|\omega_2) dx \right] JC=−ln[∫RDpα(x∣ω1)p1−α(x∣ω2)dx]
当 α = 0.5 \alpha=0.5 α=0.5时, J C = J B J_C = J_B JC=JB。 -
散度(Divergence):衡量两类PDF的“双向KL散度”,对分布差异更敏感:
J D = ∫ R D p ( x ∣ ω 1 ) ln p ( x ∣ ω 1 ) p ( x ∣ ω 2 ) d x + ∫ R D p ( x ∣ ω 2 ) ln p ( x ∣ ω 2 ) p ( x ∣ ω 1 ) d x J_D = \int_{\mathbb{R}^D} p(x|\omega_1) \ln \frac{p(x|\omega_1)}{p(x|\omega_2)} dx + \int_{\mathbb{R}^D} p(x|\omega_2) \ln \frac{p(x|\omega_2)}{p(x|\omega_1)} dx JD=∫RDp(x∣ω1)lnp(x∣ω2)p(x∣ω1)dx+∫RDp(x∣ω2)lnp(x∣ω1)p(x∣ω2)dx
2.3 基于后验概率的可分性判据
该类判据从“样本属于不同类别的后验概率差异”出发,借用信息论中的“熵”量化不确定性,适用于概率模型(如贝叶斯分类器)。
2.3.1 核心概念:后验熵
设样本x属于类别
ω
i
\omega_i
ωi的后验概率为
P
(
ω
i
∣
x
)
=
^
p
i
P(\omega_i|x) \hat{=} p_i
P(ωi∣x)=^pi(满足
∑
i
=
1
c
p
i
=
1
\sum_{i=1}^c p_i = 1
∑i=1cpi=1,c为类别数),则后验熵定义为:
H
c
(
x
)
=
H
c
(
p
)
=
−
∑
i
=
1
c
p
i
log
p
i
H_c(x) = H_c(p) = -\sum_{i=1}^c p_i \log p_i
Hc(x)=Hc(p)=−i=1∑cpilogpi
熵 H c ( x ) H_c(x) Hc(x)的物理意义是“后验概率的不确定性”:
- 当x明确属于某一类(如 p 1 = 1 , p 2 = ⋯ = p c = 0 p_1=1, p_2=\dots=p_c=0 p1=1,p2=⋯=pc=0)时, H c ( x ) = 0 H_c(x)=0 Hc(x)=0(不确定性最低);
- 当x属于各类的概率均等(如 p 1 = p 2 = ⋯ = p c = 1 / c p_1=p_2=\dots=p_c=1/c p1=p2=⋯=pc=1/c)时, H c ( x ) = log c H_c(x)=\log c Hc(x)=logc(不确定性最高)。
2.3.2 熵的性质
- 非负性: H c ( x ) ≥ 0 H_c(x) \geq 0 Hc(x)≥0;
- 上界性: H c ( x ) ≤ log c H_c(x) \leq \log c Hc(x)≤logc;
- 对称性:熵值与类别顺序无关;
- 上凸性:熵是后验概率 p p p的上凸函数,存在唯一最小值。
2.3.3 可分性判据设计
由于熵越小,分类不确定性越低,因此判据目标为“最小化熵的期望”:
J
H
=
E
[
H
c
(
x
)
]
=
∫
R
D
H
c
(
x
)
p
(
x
)
d
x
(需最小化)
J_H = E\left[ H_c(x) \right] = \int_{\mathbb{R}^D} H_c(x) p(x) dx \quad \text{(需最小化)}
JH=E[Hc(x)]=∫RDHc(x)p(x)dx(需最小化)
式中
p
(
x
)
p(x)
p(x)为样本的边缘PDF。此外,也可通过“广义熵”(如α-熵)构造更灵活的判据。
2.4 基于联合概率的可分性判据
该类判据从“特征与类别之间的统计相关性”出发,借用信息论中的“互信息”量化特征对类别的区分能力,适用于特征与类别均为离散变量的场景。
2.4.1 核心概念:互信息
设X为特征变量(取值
x
∈
X
x \in X
x∈X),Y为类别变量(取值
y
∈
Y
y \in Y
y∈Y),则X与Y的互信息定义为:
I
(
X
,
Y
)
=
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
log
2
p
(
x
,
y
)
p
(
x
)
p
(
y
)
I(X, Y) = \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 \frac{p(x, y)}{p(x) p(y)}
I(X,Y)=x∈X∑y∈Y∑p(x,y)log2p(x)p(y)p(x,y)
互信息的物理意义是“特征X包含的关于类别Y的信息量”:
- 若 I ( X , Y ) = 0 I(X,Y)=0 I(X,Y)=0,则X与Y独立,特征X对分类无帮助;
- 若 I ( X , Y ) I(X,Y) I(X,Y)越大,特征X与类别Y的相关性越强,分类贡献越大。
2.4.2 可分性判据设计
基于互信息的特征选择/提取逻辑如下:
- 计算每个原始特征 x j x_j xj与类别Y的互信息 I ( x j , Y ) I(x_j, Y) I(xj,Y);
- 选择互信息最大的前d个特征(特征选择),或通过变换构造互信息最大的子空间(特征提取);
- 对于多特征场景,需考虑特征间的冗余性(如通过“条件互信息”筛选无冗余的特征组合)。
基于可分性判据的特征提取与选择
基于上述可分性判据,可设计具体的特征降维方法。核心思路是:通过优化判据函数,求解最优的“特征子集”(选择)或“变换矩阵”(提取)。
3.1 核心框架:变换矩阵的设计
特征提取的核心是设计变换矩阵 W ∈ R D × d W \in \mathbb{R}^{D \times d} W∈RD×d,使降维后的数据 y = W T x y = W^T x y=WTx满足可分性判据最大化。求解 W W W的步骤通常为:
- 确定目标判据(如 J 1 = Tr ( W T S B W ( W T S W W ) − 1 ) J_1 = \text{Tr}(W^T S_B W (W^T S_W W)^{-1}) J1=Tr(WTSBW(WTSWW)−1));
- 通过矩阵求导、拉格朗日乘数法等数学工具,求解使判据最大的 W W W;
- 验证降维后的数据是否满足分类需求,必要时调整d的取值。
3.2 基于不同判据的变换方法
3.2.1 基于离差阵判据的变换
以 J 1 = Tr ( S W − 1 S B ) J_1 = \text{Tr}(S_W^{-1} S_B) J1=Tr(SW−1SB)为例,其对应的最优变换矩阵 W W W由 S W − 1 S B S_W^{-1} S_B SW−1SB的前d个最大特征值对应的特征向量构成。
- 物理意义:这些特征向量方向是“类间差异最大、类内差异最小”的方向,能最大限度保留分类信息。
- 适用场景:多类分类问题,且类内分布近似高斯分布。
3.2.2 基于 J B J_B JB、 J C J_C JC判据的变换
Bhattacharyya判据
J
B
J_B
JB对应的最优变换需最大化两类PDF的分离度。对于高斯分布场景(
p
(
x
∣
ω
i
)
∼
N
(
μ
i
,
Σ
i
)
p(x|\omega_i) \sim \mathcal{N}(\mu_i, \Sigma_i)
p(x∣ωi)∼N(μi,Σi)),
J
B
J_B
JB可简化为:
J
B
=
1
8
(
μ
1
−
μ
2
)
T
Σ
−
1
(
μ
1
−
μ
2
)
+
1
2
ln
∣
Σ
∣
∣
Σ
1
∣
∣
Σ
2
∣
J_B = \frac{1}{8} (\mu_1 - \mu_2)^T \Sigma^{-1} (\mu_1 - \mu_2) + \frac{1}{2} \ln \frac{|\Sigma|}{\sqrt{|\Sigma_1||\Sigma_2|}}
JB=81(μ1−μ2)TΣ−1(μ1−μ2)+21ln∣Σ1∣∣Σ2∣∣Σ∣
(
Σ
=
1
2
(
Σ
1
+
Σ
2
)
\Sigma = \frac{1}{2}(\Sigma_1 + \Sigma_2)
Σ=21(Σ1+Σ2)为平均协方差矩阵)
此时最优变换矩阵由
Σ
−
1
(
μ
1
−
μ
2
)
\Sigma^{-1} (\mu_1 - \mu_2)
Σ−1(μ1−μ2)的方向构成,即“类均值差异方向”。
3.2.3 基于 J D J_D JD判据的变换
散度
J
D
J_D
JD对分布差异更敏感,其最优变换需最大化两类PDF的双向KL散度。对于高斯分布,
J
D
J_D
JD可简化为:
J
D
=
1
2
Tr
[
(
Σ
1
−
1
+
Σ
2
−
1
)
(
Σ
1
−
Σ
2
)
]
+
1
2
(
μ
1
−
μ
2
)
T
(
Σ
1
−
1
+
Σ
2
−
1
)
(
μ
1
−
μ
2
)
J_D = \frac{1}{2} \text{Tr}\left[ (\Sigma_1^{-1} + \Sigma_2^{-1})(\Sigma_1 - \Sigma_2) \right] + \frac{1}{2} (\mu_1 - \mu_2)^T (\Sigma_1^{-1} + \Sigma_2^{-1})(\mu_1 - \mu_2)
JD=21Tr[(Σ1−1+Σ2−1)(Σ1−Σ2)]+21(μ1−μ2)T(Σ1−1+Σ2−1)(μ1−μ2)
最优变换矩阵由
Σ
1
−
1
Σ
2
\Sigma_1^{-1} \Sigma_2
Σ1−1Σ2的特征向量构成,适用于类协方差矩阵差异较大的场景。
3.3 多类情况的处理
当类别数c>2时,需将两类判据扩展为多类判据,常用方法有:
- 两两类别法:计算所有两两类别对的判据(如 J B ( ω i , ω j ) J_B(\omega_i, \omega_j) JB(ωi,ωj)),取平均值作为总判据;
- 全局判据法:直接使用多类离差阵(如 S W , S B S_W, S_B SW,SB)构造判据(如 J 1 = Tr ( S W − 1 S B ) J_1 = \text{Tr}(S_W^{-1} S_B) J1=Tr(SW−1SB));
- 层次分解法:将多类问题分解为多个二类子问题(如One-vs-Rest),分别设计变换矩阵后融合。
最佳鉴别矢量的提取
最佳鉴别矢量是“单维最优特征方向”,即能使可分性判据最大的单个特征向量。多个最佳鉴别矢量构成“最佳鉴别矢量集”,可实现多维特征提取。
4.1 Fisher鉴别矢量
Fisher鉴别矢量是最经典的线性鉴别矢量,针对二类问题设计,核心目标是“最大化类间距离、最小化类内距离”。
4.1.1 目标函数
设两类样本的均值分别为
μ
1
,
μ
2
\mu_1, \mu_2
μ1,μ2,类内离差分别为
S
1
,
S
2
S_1, S_2
S1,S2,则Fisher目标函数为:
J
(
ω
)
=
(
ω
T
(
μ
1
−
μ
2
)
)
2
ω
T
(
S
1
+
S
2
)
ω
J(\omega) = \frac{(\omega^T (\mu_1 - \mu_2))^2}{\omega^T (S_1 + S_2) \omega}
J(ω)=ωT(S1+S2)ω(ωT(μ1−μ2))2
式中
ω
\omega
ω为待求的鉴别矢量,分子为类间距离的平方,分母为总类内离差。
4.1.2 求解结果
通过拉格朗日乘数法求解
J
(
ω
)
J(\omega)
J(ω)的最大值,可得最优Fisher鉴别矢量:
ω
∗
=
(
S
1
+
S
2
)
−
1
(
μ
1
−
μ
2
)
\omega^* = (S_1 + S_2)^{-1} (\mu_1 - \mu_2)
ω∗=(S1+S2)−1(μ1−μ2)
即
ω
∗
\omega^*
ω∗与“类均值差异向量”在“类内离差矩阵逆”变换后的方向一致。
4.2 最佳鉴别矢量集
对于多类问题或需提取多维特征的场景,需构造最佳鉴别矢量集 { ω 1 , ω 2 , … , ω d } \{\omega_1, \omega_2, \dots, \omega_d\} {ω1,ω2,…,ωd},常用方法包括Foley-Sammon变换和广义最佳鉴别矢量集。
4.2.1 Foley-Sammon变换
Foley-Sammon变换是多类线性鉴别分析(LDA)的核心方法,目标是“使提取的d个特征向量相互正交,且每个向量都最大化类间与类内离差比”。
其求解步骤为:
- 计算多类离差阵 S W S_W SW和 S B S_B SB;
- 求解广义特征值问题 S B ω = λ S W ω S_B \omega = \lambda S_W \omega SBω=λSWω;
- 选取前d个最大特征值对应的特征向量 { ω 1 , … , ω d } \{\omega_1, \dots, \omega_d\} {ω1,…,ωd},构成鉴别矢量集。
该方法的优势是:提取的特征向量正交,且能保证多类场景下的全局鉴别能力。
4.2.2 基于Fisher的多类鉴别矢量
将二类Fisher鉴别矢量扩展到多类场景,可通过“最大化总体Fisher判据”实现:
J
(
ω
)
=
ω
T
S
B
ω
ω
T
S
W
ω
J(\omega) = \frac{\omega^T S_B \omega}{\omega^T S_W \omega}
J(ω)=ωTSWωωTSBω
求解该目标函数的最大值,可得最优鉴别矢量为
S
W
−
1
S
B
S_W^{-1} S_B
SW−1SB的最大特征值对应的特征向量。重复该过程(每次正交化已选向量),可得到d个鉴别矢量构成的集合。
主成分分析(PCA)
PCA是最常用的无监督特征提取方法,又称Karhunen-Loève(K-L)变换,核心思想是“保留数据中方差最大的方向”,实现数据压缩与去噪。
5.1 PCA的基本概念
5.1.1 别名与应用场景
PCA在不同领域有不同名称,但其数学本质一致:
- 信号处理:K-L变换;
- 统计学:主成分分析;
- 自然语言处理:潜在语义分析(LSA);
- 工程领域:经验直交函数(气象)、本征正交分解(机械)。
其典型应用包括:高维数据降维(如图像像素降维)、数据压缩(如PCA压缩图像)、信号去噪(如去除传感器噪声)。
5.1.2 核心动机
高维数据的方差往往集中在少数几个“主方向”上,这些方向由数据的内在结构决定。PCA的动机是:通过正交变换,将数据投影到这些主方向上,保留方差最大的前d个方向,从而在最小化信息损失的前提下实现降维。
5.2 离散K-L变换(DKLT)
PCA的数学基础是离散K-L变换,其核心是基于数据的协方差阵或相关阵构造正交变换矩阵。
5.2.1 前提约定
设D维随机向量 x = ( x 1 , x 2 , … , x D ) T x = (x_1, x_2, \dots, x_D)^T x=(x1,x2,…,xD)T,定义:
- 均值向量: x ‾ = E [ x ] \overline{x} = E[x] x=E[x](E[·]为期望算子);
- 协方差阵: C x = E [ ( x − x ‾ ) ( x − x ‾ ) T ] C_x = E\left[ (x - \overline{x})(x - \overline{x})^T \right] Cx=E[(x−x)(x−x)T];
- 相关阵: R x = E [ x x T ] R_x = E\left[ x x^T \right] Rx=E[xxT](当 x ‾ = 0 \overline{x}=0 x=0时, C x = R x C_x = R_x Cx=Rx);
- 正交变换: y = T T x y = T^T x y=TTx( T T T为D×D正交矩阵,满足 T T T = I T^T T = I TTT=I)。
5.2.2 DKLT的两种形式
-
基于协方差阵的DKLT:
变换矩阵 T T T由 C x C_x Cx的特征向量构成,即 C x T = T Λ C_x T = T \Lambda CxT=TΛ( Λ \Lambda Λ为 C x C_x Cx的特征值对角阵)。
降维时,取 T T T的前d个特征向量构成 T d T_d Td,则降维后的数据为 y = T d T ( x − x ‾ ) y = T_d^T (x - \overline{x}) y=TdT(x−x)(需先减去均值,使数据中心化)。 -
基于相关阵的DKLT:
变换矩阵 T T T由 R x R_x Rx的特征向量构成,适用于各特征量纲差异较大的场景(如身高(cm)与体重(kg))。
5.3 DKLT的核心性质
PCA的优势源于DKLT的优良性质,这些性质保证了降维的有效性:
- 正交性/不相关性:变换后的数据 y y y的协方差阵 C y = T T C x T = Λ C_y = T^T C_x T = \Lambda Cy=TTCxT=Λ(对角阵),即各主成分之间不相关。
- 方差集中性:特征值 λ i \lambda_i λi对应第i个主成分的方差,且 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ D \lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_D λ1≥λ2≥⋯≥λD,即前d个主成分的方差之和占总方差的比例最高(通常需≥85%)。
- 最佳逼近性:在所有d维正交变换中,PCA的均方误差(MSE)最小,即 M S E = E [ ∥ x − x ^ ∥ 2 ] = ∑ i = d + 1 D λ i MSE = E\left[ \| x - \hat{x} \|^2 \right] = \sum_{i=d+1}^D \lambda_i MSE=E[∥x−x^∥2]=∑i=d+1Dλi( x ^ \hat{x} x^为x的重构值)。
- 能量集中性:数据的“能量”(方差)主要集中在前d个主成分,后续成分可视为噪声,因此PCA兼具去噪功能。
- 不确定性最小:变换后数据的熵最小(熵与方差正相关),即数据的不确定性最低,信息更明确。
5.4 标准PCA的实现步骤
PCA的工程实现步骤清晰,可概括为5步:
- 数据中心化:计算每个特征的均值 x ‾ j = 1 n ∑ i = 1 n x i j \overline{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij} xj=n1∑i=1nxij,将原始数据减去均值,得到零均值数据 z i = x i − x ‾ z_i = x_i - \overline{x} zi=xi−x( i = 1 , … , n i=1,\dots,n i=1,…,n)。
- 计算协方差阵:对零均值数据,协方差阵 C = 1 n − 1 Z Z T C = \frac{1}{n-1} Z Z^T C=n−11ZZT( Z = [ z 1 , z 2 , … , z n ] ∈ R D × n Z = [z_1, z_2, \dots, z_n] \in \mathbb{R}^{D \times n} Z=[z1,z2,…,zn]∈RD×n)。
- 求解特征值与特征向量:通过特征值分解(EVD)或奇异值分解(SVD),求解 C C C的特征值 λ 1 ≥ ⋯ ≥ λ D \lambda_1 \geq \dots \geq \lambda_D λ1≥⋯≥λD和对应的特征向量 β 1 , … , β D \beta_1, \dots, \beta_D β1,…,βD。
- 选择主成分:根据方差贡献率( ∑ i = 1 d λ i ∑ i = 1 D λ i \frac{\sum_{i=1}^d \lambda_i}{\sum_{i=1}^D \lambda_i} ∑i=1Dλi∑i=1dλi),选择前d个特征向量,构成特征向量矩阵 T d = [ β 1 , … , β d ] ∈ R D × d T_d = [\beta_1, \dots, \beta_d] \in \mathbb{R}^{D \times d} Td=[β1,…,βd]∈RD×d。
- 数据投影:将零均值数据投影到主成分空间,得到降维后的数据 Y = T d T Z ∈ R d × n Y = T_d^T Z \in \mathbb{R}^{d \times n} Y=TdTZ∈Rd×n。
5.5 PCA的不足与扩展
5.5.1 主要不足
- 依赖二阶统计量:PCA仅利用数据的协方差阵(二阶矩),无法捕捉高阶统计信息(如非高斯分布的峰度、偏度)。
- 样本需求量大:协方差阵的估计需要大量样本(通常样本数≥5D),否则估计精度低。
- 计算复杂度高:高维数据(如D>1000)的特征值分解耗时,需借助SVD或增量PCA优化。
- 无鉴别能力:PCA是无监督方法,未利用类别信息,因此降维后的数据可能不利于分类(相比有监督的LDA)。
5.5.2 常见扩展方法
为解决上述不足,PCA的扩展方法主要针对“非线性”和“监督信息”:
- 多维尺度分析(MDS):通过保持样本间距离,实现非线性降维;
- 核PCA(KPCA):通过核函数将数据映射到高维特征空间,再在该空间进行PCA,实现非线性降维;
- 神经网络方法:如自编码器(Autoencoder),通过神经网络学习非线性降维映射;
- 流形学习:如ISOMAP、LLE,假设数据位于低维流形上,通过保持流形结构实现降维。
特征选择中的直接挑选法
特征选择的直接挑选法是“从原始特征中筛选子集”的经典方法,核心包含“子集搜索”和“子集评价”两个环节:前者负责生成候选特征子集,后者通过可分性判据评价子集优劣。
6.1 特征选择的核心要素
6.1.1 定义与目标
特征选择的定义是:从D个原始特征中选择d个特征构成子集 S ⊆ { 1 , 2 , … , D } S \subseteq \{1,2,\dots,D\} S⊆{1,2,…,D}(|S|=d),使可分性判据 J ( S ) J(S) J(S)最大,即 J ( S ) = max S ⊆ { 1 , … , D } , ∣ S ∣ = d J ( S ) J(S) = \max_{S \subseteq \{1,\dots,D\}, |S|=d} J(S) J(S)=maxS⊆{1,…,D},∣S∣=dJ(S)。
其核心目标是:在保留分类信息的前提下,去除冗余特征和噪声特征,降低模型复杂度。
6.1.2 三大方法类型
根据“子集评价是否依赖学习器”,特征选择方法可分为三类:
| 方法类型 | 核心逻辑 | 优点 | 缺点 | 代表算法 |
|---|---|---|---|---|
| 过滤式(Filter) | 独立于学习器,仅通过数据统计特性评价子集(如互信息、Relief) | 计算快、通用性强 | 未考虑学习器特性,可能筛选出对特定学习器无用的特征 | Relief、互信息法 |
| 包裹式(Wrapper) | 以学习器的性能(如分类准确率)作为评价准则,将学习器作为“黑盒”包裹 | 针对性强,性能通常优于过滤式 | 计算复杂度高(需反复训练学习器) | SVM-REF、遗传算法 |
| 嵌入式(Embedded) | 将特征选择与学习器训练融合,在训练过程中自动筛选特征(如正则化) | 效率高,兼顾性能与复杂度 | 依赖特定学习器,通用性弱 | L1正则化(Lasso)、决策树 |
其中,L1正则化的数学表达为:
min
w
∑
i
=
1
N
(
l
i
−
w
T
x
i
)
2
+
λ
∥
w
∥
1
\min_{w} \sum_{i=1}^N (l_i - w^T x_i)^2 + \lambda \| w \|_1
wmini=1∑N(li−wTxi)2+λ∥w∥1
式中
λ
\lambda
λ为正则化参数,
∥
w
∥
1
\| w \|_1
∥w∥1为L1范数,通过惩罚系数
w
w
w的绝对值,使部分特征的系数为0,从而实现特征选择。
6.2 子集搜索方法
子集搜索是特征选择的关键环节,目标是高效遍历特征子集空间(共 2 D − 1 2^D - 1 2D−1个非空子集),找到最优子集。根据搜索策略,可分为“次优搜索”和“最优搜索”两类。
6.2.1 次优搜索法
次优搜索法以“牺牲部分最优性”换取“计算效率”,适用于D较大的场景(如D>20),常见方法包括:
-
单独最优法:计算每个特征单独使用时的判据值,选择前d个判据最大的特征。
- 优点:计算最快;缺点:未考虑特征间的协同作用,可能遗漏有效组合。
-
序列前向选择(SFS):从空集开始,每次添加“使当前子集判据最大”的特征,直至子集大小为d。
- 优点:逐步优化;缺点:存在“贪心陷阱”,无法回溯删除冗余特征。
-
序列后向选择(SBS):从全特征集开始,每次删除“使剩余子集判据最大”的特征,直至子集大小为d。
- 优点:避免遗漏重要特征;缺点:计算复杂度高于SFS。
-
增l减r法(l-r法):在SFS/SBS基础上增加回溯机制,例如每次添加l个特征后,删除r个冗余特征(如l=2, r=1)。
- 优点:减少贪心陷阱影响;缺点:需调整l和r的参数。
-
可分性判据递推算法:在添加/删除特征时,通过递推公式更新判据值(无需重新计算整个子集的判据),大幅提升效率。
- 例如:添加特征 x k x_k xk时, J ( S ∪ { k } ) = J ( S ) + Δ J J(S \cup \{k\}) = J(S) + \Delta J J(S∪{k})=J(S)+ΔJ( Δ J \Delta J ΔJ为 x k x_k xk的增量贡献)。
6.2.2 最优搜索法
最优搜索法能保证找到全局最优子集,但计算复杂度高,适用于D较小的场景(如D≤15),常见方法包括:
-
穷举法:遍历所有大小为d的特征子集,计算每个子集的判据值,选择最大者。
- 优点:全局最优;缺点:复杂度为 ( D d ) \binom{D}{d} (dD),D=20时 ( 20 10 ) = 184756 \binom{20}{10}=184756 (1020)=184756,计算量巨大。
-
分支定界法:基于“树结构”和“判据单调性”进行剪枝,避免无效搜索。
- 树结构:根节点为全特征集,每个子节点比父节点少1个特征;
- 搜索策略:自上而下、从右至左遍历树,通过“当前界值”(已找到的最优判据值)剪枝:若某节点的子节点最大可能判据≤当前界值,则无需遍历该子节点的所有后代;
- 优点:全局最优且效率高于穷举法;缺点:依赖判据的单调性(如 J ( S ) ≥ J ( S ′ ) J(S) \geq J(S') J(S)≥J(S′)若 S ′ ⊆ S S' \subseteq S S′⊆S)。
总结
特征提取与选择是解决维数灾难的核心技术,二者的本质都是“在降维的同时保留关键分类信息”,但路径不同:
- 特征提取通过变换生成新特征,适用于原始特征冗余度高、物理意义不明确的场景(如PCA);
- 特征选择通过筛选保留原始特征,适用于需保留特征物理意义、样本量较小的场景(如分支定界法)。
在实际应用中,需根据数据维度、类别信息、计算资源等因素选择合适的方法:无监督场景优先考虑PCA,有监督场景优先考虑LDA或基于互信息的选择方法,高维数据优先使用次优搜索的过滤式选择。
更多推荐

所有评论(0)