模式识别与机器学习课程笔记(8):特征提取与选择
模式识别与机器学习课程笔记(8):特征提取与选择
- 概述
- 1.1 核心问题:维数灾难
- 1.2 特征提取与选择的定义与区别
- 1.3 数学描述与核心原则
- 1.3.1 数学建模
- 1.3.2 核心原则
- 1.3.3 本质理解
- 类别可分性判据
- 2.1 基于几何距离的可分性判据
- 2.1.1 核心概念
- 2.1.2 常用判据公式
- 2.2 基于概率密度函数的可分性判据
- 2.2.1 核心要求
- 2.2.2 常用判据
- 2.3 基于后验概率的可分性判据
- 2.3.1 核心概念:后验熵
- 2.3.2 熵的性质
- 2.3.3 可分性判据设计
- 2.4 基于联合概率的可分性判据
- 2.4.1 核心概念:互信息
- 2.4.2 可分性判据设计
- 基于可分性判据的特征提取与选择
- 3.1 核心框架:变换矩阵的设计
- 3.2 基于不同判据的变换方法
- 3.2.1 基于离差阵判据的变换
- 3.2.2 基于JBJ_BJB、JCJ_CJC判据的变换
- 3.2.3 基于JDJ_DJD判据的变换
- 3.3 多类情况的处理
- 最佳鉴别矢量的提取
- 4.1 Fisher鉴别矢量
- 4.1.1 目标函数
- 4.1.2 求解结果
- 4.2 最佳鉴别矢量集
- 4.2.1 Foley-Sammon变换
- 4.2.2 基于Fisher的多类鉴别矢量
- 主成分分析(PCA)
- 5.1 PCA的基本概念
- 5.1.1 别名与应用场景
- 5.1.2 核心动机
- 5.2 离散K-L变换(DKLT)
- 5.2.1 前提约定
- 5.2.2 DKLT的两种形式
- 5.3 DKLT的核心性质
- 5.4 标准PCA的实现步骤
- 5.5 PCA的不足与扩展
- 5.5.1 主要不足
- 5.5.2 常见扩展方法
- 特征选择中的直接挑选法
- 6.1 特征选择的核心要素
- 6.1.1 定义与目标
- 6.1.2 三大方法类型
- 6.2 子集搜索方法
- 6.2.1 次优搜索法
- 6.2.2 最优搜索法
- 总结
概述
在模式识别任务中,高维特征往往会引发“维数灾难”,而特征提取与选择是解决这一问题的核心技术。二者均以“保留关键分类信息、压缩特征维度”为目标,但实现路径存在本质差异。
1.1 核心问题:维数灾难
维数灾难是高维特征空间的固有缺陷,直接影响分类器性能,其核心表现可概括为三点:
- 性能波动:分类器精度随特征个数增长先上升后下降,当特征过多时,冗余信息会抵消有效信息的作用。
- 样本稀疏:随着特征维数增加,有限样本在空间中的分布会越来越稀疏,导致传统距离度量(如欧氏距离)失效。
- 计算激增:高维特征会大幅增加模型的计算复杂度和存储成本,例如1000维特征的处理成本远高于100维。
1.2 特征提取与选择的定义与区别
特征提取与选择均旨在从D维原始特征中获取d维有效特征(d<D),但操作逻辑完全不同。二者的核心差异如下表所示:
对比维度 | 特征选择 | 特征提取 |
---|---|---|
核心操作 | 从原始特征中筛选子集 | 对原始特征进行线性/非线性变换 |
目标函数 | 使筛选出的子集满足可分性判据最大化 | 使变换后的子空间满足可分性判据最大化 |
数据完整性 | 保留原始特征的物理意义 | 可能丢失原始特征的物理意义(如PCA主成分) |
代表算法 | 分支定界法、Relief、SFS | 主成分分析(PCA)、独立成分分析(ICA)、LDA |
1.3 数学描述与核心原则
1.3.1 数学建模
给定n个D维原始数据点构成的集合X={x1,x2,…,xn}∈RD×nX = \left\{ x _ { 1 } , x _ { 2 } , \ldots , x _ { n } \right\} \in \mathbb{R} ^ { D \times n }X={x1,x2,…,xn}∈RD×n,特征提取与选择可统一描述为:
寻找映射x∈RD→Py∈Rdx \in \mathbb{R} ^ { D } \xrightarrow{P} y \in \mathbb{R} ^ { d }x∈RDPy∈Rd(d<D),得到降维后的数据集合Y={y1,y2,…,yn}∈Rd×nY = \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(x1,x2,⋯,xd)=max[J(xi1,xi2,⋯,xid)]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维原始空间RD\mathbb{R}^DRD中寻找一个d维子空间WWW。新特征的生成方式为:
- 子空间WWW由基向量张成:W=Span{β1,β2,⋯,βd}W = \text{Span}\{\beta_1, \beta_2, \cdots, \beta_d\}W=Span{β1,β2,⋯,βd}(βi\beta_iβi为子空间的基)。
- 原始数据xxx向WWW投影,得到近似表示x^=∑i=1dbiβi\hat{x} = \sum_{i=1}^d b_i \beta_ix^=∑i=1dbiβi,其中bib_ibi即为降维后的新特征值。
类别可分性判据
可分性判据是特征提取与选择的“指南针”,用于量化特征对分类任务的贡献度。其核心要求包括:与误判概率单调性(判据值越大,误判概率越低)、可加性(多特征贡献可叠加)、对特征数单调不减(增加特征不会降低判据值)。
2.1 基于几何距离的可分性判据
该类判据从“特征空间中类别分布的几何位置”出发,通过距离或离差矩阵衡量类别差异,适用于已知类别分布的场景。
2.1.1 核心概念
- 类内离差矩阵SWS_WSW:描述同一类别内部样本的离散程度,SW=∑i=1cP(ωi)SiS_W = \sum_{i=1}^c P(\omega_i) S_iSW=∑i=1cP(ωi)Si(SiS_iSi为第i类的协方差矩阵,P(ωi)P(\omega_i)P(ωi)为第i类的先验概率)。
- 类间离差矩阵SBS_BSB:描述不同类别均值之间的离散程度,SB=∑i=1cP(ωi)(μi−μ)(μi−μ)TS_B = \sum_{i=1}^c P(\omega_i) (\mu_i - \mu)(\mu_i - \mu)^TSB=∑i=1cP(ωi)(μi−μ)(μi−μ)T(μi\mu_iμi为第i类均值,μ\muμ为总体均值)。
- 总体离差矩阵STS_TST:描述所有样本的总离散程度,ST=SW+SBS_T = S_W + S_BST=SW+SB。
2.1.2 常用判据公式
基于上述矩阵,常用的可分性判据如下(均需最大化,除特别标注外):
J1=Tr[SW−1SB](迹比判据,反映类间与类内离差的比值)J_{1} = \text{Tr}\left[S_{W}^{-1} S_{B}\right] \quad \text{(迹比判据,反映类间与类内离差的比值)}J1=Tr[SW−1SB](迹比判据,反映类间与类内离差的比值)
J2=Tr[SB]Tr[SW](迹的比值,简洁易计算)J_{2} = \frac{\text{Tr}\left[S_{B}\right]}{\text{Tr}\left[S_{W}\right]} \quad \text{(迹的比值,简洁易计算)}J2=Tr[SW]Tr[SB](迹的比值,简洁易计算)
J3=Tr[SW−1ST](结合总体离差,间接反映类间差异)J_{3} = \text{Tr}\left[S_{W}^{-1} S_{T}\right] \quad \text{(结合总体离差,间接反映类间差异)}J3=Tr[SW−1ST](结合总体离差,间接反映类间差异)
J4=∣ST∣∣SW∣(行列式比,反映矩阵的“体积”比)J_{4} = \frac{\left|S_{T}\right|}{\left|S_{W}\right|} \quad \text{(行列式比,反映矩阵的“体积”比)}J4=∣SW∣∣ST∣(行列式比,反映矩阵的“体积”比)
J5=Tr[ST−1SW](需最小化,等价于最大化类间占比)J_{5} = \text{Tr}\left[S_{T}^{-1} S_{W}\right] \quad \text{(需最小化,等价于最大化类间占比)}J5=Tr[ST−1SW](需最小化,等价于最大化类间占比)
J6=∣ST−1SW∣(需最小化,同J5的行列式形式)J_{6} = \left|S_{T}^{-1} S_{W}\right| \quad \text{(需最小化,同J5的行列式形式)}J6=ST−1SW(需最小化,同J5的行列式形式)
J7=Tr[ST]Tr[SW](总体与类内迹比,直观反映总离散度中类内占比)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 核心要求
构造的判据JpJ_pJp需满足三个条件:
- 非负性:Jp≥0J_p \geq 0Jp≥0;
- 极值性:当两类PDF完全不重叠时,Jp=maxJ_p = \maxJp=max;当两类PDF完全重合时,Jp=0J_p = 0Jp=0;
- 对称性:Jp(ω1,ω2)=Jp(ω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的平均重叠度,计算简便,适用于小样本场景:
JB=−ln[∫RDp(x∣ω1)p(x∣ω2)dx]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,JBJ_BJB越大,两类重叠度越低。 -
Chernoff判据:Bhattacharyya判据的推广,引入参数α∈[0,1]\alpha \in [0,1]α∈[0,1]控制两类权重:
JC=−ln[∫RDpα(x∣ω1)p1−α(x∣ω2)dx]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时,JC=JBJ_C = J_BJC=JB。 -
散度(Divergence):衡量两类PDF的“双向KL散度”,对分布差异更敏感:
JD=∫RDp(x∣ω1)lnp(x∣ω1)p(x∣ω2)dx+∫RDp(x∣ω2)lnp(x∣ω2)p(x∣ω1)dxJ_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)} dxJD=∫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)=^piP(\omega_i|x) \hat{=} p_iP(ωi∣x)=^pi(满足∑i=1cpi=1\sum_{i=1}^c p_i = 1∑i=1cpi=1,c为类别数),则后验熵定义为:
Hc(x)=Hc(p)=−∑i=1cpilogpiH_c(x) = H_c(p) = -\sum_{i=1}^c p_i \log p_iHc(x)=Hc(p)=−i=1∑cpilogpi
熵Hc(x)H_c(x)Hc(x)的物理意义是“后验概率的不确定性”:
- 当x明确属于某一类(如p1=1,p2=⋯=pc=0p_1=1, p_2=\dots=p_c=0p1=1,p2=⋯=pc=0)时,Hc(x)=0H_c(x)=0Hc(x)=0(不确定性最低);
- 当x属于各类的概率均等(如p1=p2=⋯=pc=1/cp_1=p_2=\dots=p_c=1/cp1=p2=⋯=pc=1/c)时,Hc(x)=logcH_c(x)=\log cHc(x)=logc(不确定性最高)。
2.3.2 熵的性质
- 非负性:Hc(x)≥0H_c(x) \geq 0Hc(x)≥0;
- 上界性:Hc(x)≤logcH_c(x) \leq \log cHc(x)≤logc;
- 对称性:熵值与类别顺序无关;
- 上凸性:熵是后验概率ppp的上凸函数,存在唯一最小值。
2.3.3 可分性判据设计
由于熵越小,分类不确定性越低,因此判据目标为“最小化熵的期望”:
JH=E[Hc(x)]=∫RDHc(x)p(x)dx(需最小化)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∈Xx \in Xx∈X),Y为类别变量(取值y∈Yy \in Yy∈Y),则X与Y的互信息定义为:
I(X,Y)=∑x∈X∑y∈Yp(x,y)log2p(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)=0I(X,Y)=0I(X,Y)=0,则X与Y独立,特征X对分类无帮助;
- 若I(X,Y)I(X,Y)I(X,Y)越大,特征X与类别Y的相关性越强,分类贡献越大。
2.4.2 可分性判据设计
基于互信息的特征选择/提取逻辑如下:
- 计算每个原始特征xjx_jxj与类别Y的互信息I(xj,Y)I(x_j, Y)I(xj,Y);
- 选择互信息最大的前d个特征(特征选择),或通过变换构造互信息最大的子空间(特征提取);
- 对于多特征场景,需考虑特征间的冗余性(如通过“条件互信息”筛选无冗余的特征组合)。
基于可分性判据的特征提取与选择
基于上述可分性判据,可设计具体的特征降维方法。核心思路是:通过优化判据函数,求解最优的“特征子集”(选择)或“变换矩阵”(提取)。
3.1 核心框架:变换矩阵的设计
特征提取的核心是设计变换矩阵W∈RD×dW \in \mathbb{R}^{D \times d}W∈RD×d,使降维后的数据y=WTxy = W^T xy=WTx满足可分性判据最大化。求解WWW的步骤通常为:
- 确定目标判据(如J1=Tr(WTSBW(WTSWW)−1)J_1 = \text{Tr}(W^T S_B W (W^T S_W W)^{-1})J1=Tr(WTSBW(WTSWW)−1));
- 通过矩阵求导、拉格朗日乘数法等数学工具,求解使判据最大的WWW;
- 验证降维后的数据是否满足分类需求,必要时调整d的取值。
3.2 基于不同判据的变换方法
3.2.1 基于离差阵判据的变换
以J1=Tr(SW−1SB)J_1 = \text{Tr}(S_W^{-1} S_B)J1=Tr(SW−1SB)为例,其对应的最优变换矩阵WWW由SW−1SBS_W^{-1} S_BSW−1SB的前d个最大特征值对应的特征向量构成。
- 物理意义:这些特征向量方向是“类间差异最大、类内差异最小”的方向,能最大限度保留分类信息。
- 适用场景:多类分类问题,且类内分布近似高斯分布。
3.2.2 基于JBJ_BJB、JCJ_CJC判据的变换
Bhattacharyya判据JBJ_BJB对应的最优变换需最大化两类PDF的分离度。对于高斯分布场景(p(x∣ωi)∼N(μi,Σi)p(x|\omega_i) \sim \mathcal{N}(\mu_i, \Sigma_i)p(x∣ωi)∼N(μi,Σi)),JBJ_BJB可简化为:
JB=18(μ1−μ2)TΣ−1(μ1−μ2)+12ln∣Σ∣∣Σ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∣∣Σ∣
(Σ=12(Σ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 基于JDJ_DJD判据的变换
散度JDJ_DJD对分布差异更敏感,其最优变换需最大化两类PDF的双向KL散度。对于高斯分布,JDJ_DJD可简化为:
JD=12Tr[(Σ1−1+Σ2−1)(Σ1−Σ2)]+12(μ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时,需将两类判据扩展为多类判据,常用方法有:
- 两两类别法:计算所有两两类别对的判据(如JB(ωi,ωj)J_B(\omega_i, \omega_j)JB(ωi,ωj)),取平均值作为总判据;
- 全局判据法:直接使用多类离差阵(如SW,SBS_W, S_BSW,SB)构造判据(如J1=Tr(SW−1SB)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,类内离差分别为S1,S2S_1, S_2S1,S2,则Fisher目标函数为:
J(ω)=(ωT(μ1−μ2))2ωT(S1+S2)ω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鉴别矢量:
ω∗=(S1+S2)−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个特征向量相互正交,且每个向量都最大化类间与类内离差比”。
其求解步骤为:
- 计算多类离差阵SWS_WSW和SBS_BSB;
- 求解广义特征值问题SBω=λSWωS_B \omega = \lambda S_W \omegaSBω=λSWω;
- 选取前d个最大特征值对应的特征向量{ω1,…,ωd}\{\omega_1, \dots, \omega_d\}{ω1,…,ωd},构成鉴别矢量集。
该方法的优势是:提取的特征向量正交,且能保证多类场景下的全局鉴别能力。
4.2.2 基于Fisher的多类鉴别矢量
将二类Fisher鉴别矢量扩展到多类场景,可通过“最大化总体Fisher判据”实现:
J(ω)=ωTSBωωTSWωJ(\omega) = \frac{\omega^T S_B \omega}{\omega^T S_W \omega}J(ω)=ωTSWωωTSBω
求解该目标函数的最大值,可得最优鉴别矢量为SW−1SBS_W^{-1} S_BSW−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=(x1,x2,…,xD)Tx = (x_1, x_2, \dots, x_D)^Tx=(x1,x2,…,xD)T,定义:
- 均值向量:x‾=E[x]\overline{x} = E[x]x=E[x](E[·]为期望算子);
- 协方差阵:Cx=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];
- 相关阵:Rx=E[xxT]R_x = E\left[ x x^T \right]Rx=E[xxT](当x‾=0\overline{x}=0x=0时,Cx=RxC_x = R_xCx=Rx);
- 正交变换:y=TTxy = T^T xy=TTx(TTT为D×D正交矩阵,满足TTT=IT^T T = ITTT=I)。
5.2.2 DKLT的两种形式
-
基于协方差阵的DKLT:
变换矩阵TTT由CxC_xCx的特征向量构成,即CxT=TΛC_x T = T \LambdaCxT=TΛ(Λ\LambdaΛ为CxC_xCx的特征值对角阵)。
降维时,取TTT的前d个特征向量构成TdT_dTd,则降维后的数据为y=TdT(x−x‾)y = T_d^T (x - \overline{x})y=TdT(x−x)(需先减去均值,使数据中心化)。 -
基于相关阵的DKLT:
变换矩阵TTT由RxR_xRx的特征向量构成,适用于各特征量纲差异较大的场景(如身高(cm)与体重(kg))。
5.3 DKLT的核心性质
PCA的优势源于DKLT的优良性质,这些性质保证了降维的有效性:
- 正交性/不相关性:变换后的数据yyy的协方差阵Cy=TTCxT=ΛC_y = T^T C_x T = \LambdaCy=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)最小,即MSE=E[∥x−x^∥2]=∑i=d+1DλiMSE = E\left[ \| x - \hat{x} \|^2 \right] = \sum_{i=d+1}^D \lambda_iMSE=E[∥x−x^∥2]=∑i=d+1Dλi(x^\hat{x}x^为x的重构值)。
- 能量集中性:数据的“能量”(方差)主要集中在前d个主成分,后续成分可视为噪声,因此PCA兼具去噪功能。
- 不确定性最小:变换后数据的熵最小(熵与方差正相关),即数据的不确定性最低,信息更明确。
5.4 标准PCA的实现步骤
PCA的工程实现步骤清晰,可概括为5步:
- 数据中心化:计算每个特征的均值x‾j=1n∑i=1nxij\overline{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij}xj=n1∑i=1nxij,将原始数据减去均值,得到零均值数据zi=xi−x‾z_i = x_i - \overline{x}zi=xi−x(i=1,…,ni=1,\dots,ni=1,…,n)。
- 计算协方差阵:对零均值数据,协方差阵C=1n−1ZZTC = \frac{1}{n-1} Z Z^TC=n−11ZZT(Z=[z1,z2,…,zn]∈RD×nZ = [z_1, z_2, \dots, z_n] \in \mathbb{R}^{D \times n}Z=[z1,z2,…,zn]∈RD×n)。
- 求解特征值与特征向量:通过特征值分解(EVD)或奇异值分解(SVD),求解CCC的特征值λ1≥⋯≥λD\lambda_1 \geq \dots \geq \lambda_Dλ1≥⋯≥λD和对应的特征向量β1,…,βD\beta_1, \dots, \beta_Dβ1,…,βD。
- 选择主成分:根据方差贡献率(∑i=1dλi∑i=1Dλi\frac{\sum_{i=1}^d \lambda_i}{\sum_{i=1}^D \lambda_i}∑i=1Dλi∑i=1dλi),选择前d个特征向量,构成特征向量矩阵Td=[β1,…,βd]∈RD×dT_d = [\beta_1, \dots, \beta_d] \in \mathbb{R}^{D \times d}Td=[β1,…,βd]∈RD×d。
- 数据投影:将零均值数据投影到主成分空间,得到降维后的数据Y=TdTZ∈Rd×nY = 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)=maxS⊆{1,…,D},∣S∣=dJ(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正则化的数学表达为:
minw∑i=1N(li−wTxi)2+λ∥w∥1\min_{w} \sum_{i=1}^N (l_i - w^T x_i)^2 + \lambda \| w \|_1wmini=1∑N(li−wTxi)2+λ∥w∥1
式中λ\lambdaλ为正则化参数,∥w∥1\| w \|_1∥w∥1为L1范数,通过惩罚系数www的绝对值,使部分特征的系数为0,从而实现特征选择。
6.2 子集搜索方法
子集搜索是特征选择的关键环节,目标是高效遍历特征子集空间(共2D−12^D - 12D−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的参数。
-
可分性判据递推算法:在添加/删除特征时,通过递推公式更新判据值(无需重新计算整个子集的判据),大幅提升效率。
- 例如:添加特征xkx_kxk时,J(S∪{k})=J(S)+ΔJJ(S \cup \{k\}) = J(S) + \Delta JJ(S∪{k})=J(S)+ΔJ(ΔJ\Delta JΔJ为xkx_kxk的增量贡献)。
6.2.2 最优搜索法
最优搜索法能保证找到全局最优子集,但计算复杂度高,适用于D较小的场景(如D≤15),常见方法包括:
-
穷举法:遍历所有大小为d的特征子集,计算每个子集的判据值,选择最大者。
- 优点:全局最优;缺点:复杂度为(Dd)\binom{D}{d}(dD),D=20时(2010)=184756\binom{20}{10}=184756(1020)=184756,计算量巨大。
-
分支定界法:基于“树结构”和“判据单调性”进行剪枝,避免无效搜索。
- 树结构:根节点为全特征集,每个子节点比父节点少1个特征;
- 搜索策略:自上而下、从右至左遍历树,通过“当前界值”(已找到的最优判据值)剪枝:若某节点的子节点最大可能判据≤当前界值,则无需遍历该子节点的所有后代;
- 优点:全局最优且效率高于穷举法;缺点:依赖判据的单调性(如J(S)≥J(S′)J(S) \geq J(S')J(S)≥J(S′)若S′⊆SS' \subseteq SS′⊆S)。
总结
特征提取与选择是解决维数灾难的核心技术,二者的本质都是“在降维的同时保留关键分类信息”,但路径不同:
- 特征提取通过变换生成新特征,适用于原始特征冗余度高、物理意义不明确的场景(如PCA);
- 特征选择通过筛选保留原始特征,适用于需保留特征物理意义、样本量较小的场景(如分支定界法)。
在实际应用中,需根据数据维度、类别信息、计算资源等因素选择合适的方法:无监督场景优先考虑PCA,有监督场景优先考虑LDA或基于互信息的选择方法,高维数据优先使用次优搜索的过滤式选择。