模式识别与机器学习课程笔记(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 } xRDP yRd(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[SW1SB](迹比判据,反映类间与类内离差的比值)
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[SW1ST](结合总体离差,间接反映类间差异)
J 4 = ∣ S T ∣ ∣ S W ∣ (行列式比,反映矩阵的“体积”比) J_{4} = \frac{\left|S_{T}\right|}{\left|S_{W}\right|} \quad \text{(行列式比,反映矩阵的“体积”比)} J4=SWST(行列式比,反映矩阵的体积比)
J 5 = Tr [ S T − 1 S W ] (需最小化,等价于最大化类间占比) J_{5} = \text{Tr}\left[S_{T}^{-1} S_{W}\right] \quad \text{(需最小化,等价于最大化类间占比)} J5=Tr[ST1SW](需最小化,等价于最大化类间占比)
J 6 = ∣ S T − 1 S W ∣ (需最小化,同J5的行列式形式) J_{6} = \left|S_{T}^{-1} S_{W}\right| \quad \text{(需最小化,同J5的行列式形式)} J6= ST1SW (需最小化,同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需满足三个条件:

  1. 非负性: J p ≥ 0 J_p \geq 0 Jp0
  2. 极值性:当两类PDF完全不重叠时, J p = max ⁡ J_p = \max Jp=max;当两类PDF完全重合时, J p = 0 J_p = 0 Jp=0
  3. 对称性: 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(ωix)=^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=1cpilogpi

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 xX),Y为类别变量(取值 y ∈ Y y \in Y yY),则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)=xXyYp(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 可分性判据设计

基于互信息的特征选择/提取逻辑如下:

  1. 计算每个原始特征 x j x_j xj与类别Y的互信息 I ( x j , Y ) I(x_j, Y) I(xj,Y)
  2. 选择互信息最大的前d个特征(特征选择),或通过变换构造互信息最大的子空间(特征提取);
  3. 对于多特征场景,需考虑特征间的冗余性(如通过“条件互信息”筛选无冗余的特征组合)。

基于可分性判据的特征提取与选择

基于上述可分性判据,可设计具体的特征降维方法。核心思路是:通过优化判据函数,求解最优的“特征子集”(选择)或“变换矩阵”(提取)。

3.1 核心框架:变换矩阵的设计

特征提取的核心是设计变换矩阵 W ∈ R D × d W \in \mathbb{R}^{D \times d} WRD×d,使降维后的数据 y = W T x y = W^T x y=WTx满足可分性判据最大化。求解 W W W的步骤通常为:

  1. 确定目标判据(如 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));
  2. 通过矩阵求导、拉格朗日乘数法等数学工具,求解使判据最大的 W W W
  3. 验证降维后的数据是否满足分类需求,必要时调整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(SW1SB)为例,其对应的最优变换矩阵 W W W S W − 1 S B S_W^{-1} S_B SW1SB的前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[(Σ11+Σ21)(Σ1Σ2)]+21(μ1μ2)T(Σ11+Σ21)(μ1μ2)
最优变换矩阵由 Σ 1 − 1 Σ 2 \Sigma_1^{-1} \Sigma_2 Σ11Σ2的特征向量构成,适用于类协方差矩阵差异较大的场景。

3.3 多类情况的处理

当类别数c>2时,需将两类判据扩展为多类判据,常用方法有:

  1. 两两类别法:计算所有两两类别对的判据(如 J B ( ω i , ω j ) J_B(\omega_i, \omega_j) JB(ωi,ωj)),取平均值作为总判据;
  2. 全局判据法:直接使用多类离差阵(如 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(SW1SB));
  3. 层次分解法:将多类问题分解为多个二类子问题(如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个特征向量相互正交,且每个向量都最大化类间与类内离差比”。

其求解步骤为:

  1. 计算多类离差阵 S W S_W SW S B S_B SB
  2. 求解广义特征值问题 S B ω = λ S W ω S_B \omega = \lambda S_W \omega SBω=λSWω
  3. 选取前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 SW1SB的最大特征值对应的特征向量。重复该过程(每次正交化已选向量),可得到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[(xx)(xx)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的两种形式

  1. 基于协方差阵的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(xx)(需先减去均值,使数据中心化)。

  2. 基于相关阵的DKLT
    变换矩阵 T T T R x R_x Rx的特征向量构成,适用于各特征量纲差异较大的场景(如身高(cm)与体重(kg))。

5.3 DKLT的核心性质

PCA的优势源于DKLT的优良性质,这些性质保证了降维的有效性:

  1. 正交性/不相关性:变换后的数据 y y y的协方差阵 C y = T T C x T = Λ C_y = T^T C_x T = \Lambda Cy=TTCxT=Λ(对角阵),即各主成分之间不相关。
  2. 方差集中性:特征值 λ i \lambda_i λi对应第i个主成分的方差,且 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ D \lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_D λ1λ2λD,即前d个主成分的方差之和占总方差的比例最高(通常需≥85%)。
  3. 最佳逼近性:在所有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[xx^2]=i=d+1Dλi x ^ \hat{x} x^为x的重构值)。
  4. 能量集中性:数据的“能量”(方差)主要集中在前d个主成分,后续成分可视为噪声,因此PCA兼具去噪功能。
  5. 不确定性最小:变换后数据的熵最小(熵与方差正相关),即数据的不确定性最低,信息更明确。

5.4 标准PCA的实现步骤

PCA的工程实现步骤清晰,可概括为5步:

  1. 数据中心化:计算每个特征的均值 x ‾ j = 1 n ∑ i = 1 n x i j \overline{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij} xj=n1i=1nxij,将原始数据减去均值,得到零均值数据 z i = x i − x ‾ z_i = x_i - \overline{x} zi=xix i = 1 , … , n i=1,\dots,n i=1,,n)。
  2. 计算协方差阵:对零均值数据,协方差阵 C = 1 n − 1 Z Z T C = \frac{1}{n-1} Z Z^T C=n11ZZT 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)。
  3. 求解特征值与特征向量:通过特征值分解(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
  4. 选择主成分:根据方差贡献率( ∑ i = 1 d λ i ∑ i = 1 D λ i \frac{\sum_{i=1}^d \lambda_i}{\sum_{i=1}^D \lambda_i} i=1Dλii=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
  5. 数据投影:将零均值数据投影到主成分空间,得到降维后的数据 Y = T d T Z ∈ R d × n Y = T_d^T Z \in \mathbb{R}^{d \times n} Y=TdTZRd×n

5.5 PCA的不足与扩展

5.5.1 主要不足

  1. 依赖二阶统计量:PCA仅利用数据的协方差阵(二阶矩),无法捕捉高阶统计信息(如非高斯分布的峰度、偏度)。
  2. 样本需求量大:协方差阵的估计需要大量样本(通常样本数≥5D),否则估计精度低。
  3. 计算复杂度高:高维数据(如D>1000)的特征值分解耗时,需借助SVD或增量PCA优化。
  4. 无鉴别能力: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=1N(liwTxi)2+λw1
式中 λ \lambda λ为正则化参数, ∥ w ∥ 1 \| w \|_1 w1为L1范数,通过惩罚系数 w w w的绝对值,使部分特征的系数为0,从而实现特征选择。

6.2 子集搜索方法

子集搜索是特征选择的关键环节,目标是高效遍历特征子集空间(共 2 D − 1 2^D - 1 2D1个非空子集),找到最优子集。根据搜索策略,可分为“次优搜索”和“最优搜索”两类。

6.2.1 次优搜索法

次优搜索法以“牺牲部分最优性”换取“计算效率”,适用于D较大的场景(如D>20),常见方法包括:

  1. 单独最优法:计算每个特征单独使用时的判据值,选择前d个判据最大的特征。

    • 优点:计算最快;缺点:未考虑特征间的协同作用,可能遗漏有效组合。
  2. 序列前向选择(SFS):从空集开始,每次添加“使当前子集判据最大”的特征,直至子集大小为d。

    • 优点:逐步优化;缺点:存在“贪心陷阱”,无法回溯删除冗余特征。
  3. 序列后向选择(SBS):从全特征集开始,每次删除“使剩余子集判据最大”的特征,直至子集大小为d。

    • 优点:避免遗漏重要特征;缺点:计算复杂度高于SFS。
  4. 增l减r法(l-r法):在SFS/SBS基础上增加回溯机制,例如每次添加l个特征后,删除r个冗余特征(如l=2, r=1)。

    • 优点:减少贪心陷阱影响;缺点:需调整l和r的参数。
  5. 可分性判据递推算法:在添加/删除特征时,通过递推公式更新判据值(无需重新计算整个子集的判据),大幅提升效率。

    • 例如:添加特征 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),常见方法包括:

  1. 穷举法:遍历所有大小为d的特征子集,计算每个子集的判据值,选择最大者。

    • 优点:全局最优;缺点:复杂度为 ( D d ) \binom{D}{d} (dD),D=20时 ( 20 10 ) = 184756 \binom{20}{10}=184756 (1020)=184756,计算量巨大。
  2. 分支定界法:基于“树结构”和“判据单调性”进行剪枝,避免无效搜索。

    • 树结构:根节点为全特征集,每个子节点比父节点少1个特征;
    • 搜索策略:自上而下、从右至左遍历树,通过“当前界值”(已找到的最优判据值)剪枝:若某节点的子节点最大可能判据≤当前界值,则无需遍历该子节点的所有后代;
    • 优点:全局最优且效率高于穷举法;缺点:依赖判据的单调性(如 J ( S ) ≥ J ( S ′ ) J(S) \geq J(S') J(S)J(S) S ′ ⊆ S S' \subseteq S SS)。

总结

特征提取与选择是解决维数灾难的核心技术,二者的本质都是“在降维的同时保留关键分类信息”,但路径不同:

  • 特征提取通过变换生成新特征,适用于原始特征冗余度高、物理意义不明确的场景(如PCA);
  • 特征选择通过筛选保留原始特征,适用于需保留特征物理意义、样本量较小的场景(如分支定界法)。

在实际应用中,需根据数据维度、类别信息、计算资源等因素选择合适的方法:无监督场景优先考虑PCA,有监督场景优先考虑LDA或基于互信息的选择方法,高维数据优先使用次优搜索的过滤式选择。

更多推荐