当前位置: 首页 > news >正文

模式识别与机器学习课程笔记(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 可分性判据设计
  • 基于可分性判据的特征提取与选择
  • 最佳鉴别矢量的提取
    • 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 }xRDPyRd(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为子空间的基)。
  • 原始数据xxxWWW投影,得到近似表示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)SiSiS_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[SW1SB](迹比判据,反映类间与类内离差的比值)
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[SW1ST](结合总体离差,间接反映类间差异)
J4=∣ST∣∣SW∣(行列式比,反映矩阵的“体积”比)J_{4} = \frac{\left|S_{T}\right|}{\left|S_{W}\right|} \quad \text{(行列式比,反映矩阵的“体积”比)}J4=SWST(行列式比,反映矩阵的体积比)
J5=Tr[ST−1SW](需最小化,等价于最大化类间占比)J_{5} = \text{Tr}\left[S_{T}^{-1} S_{W}\right] \quad \text{(需最小化,等价于最大化类间占比)}J5=Tr[ST1SW](需最小化,等价于最大化类间占比)
J6=∣ST−1SW∣(需最小化,同J5的行列式形式)J_{6} = \left|S_{T}^{-1} S_{W}\right| \quad \text{(需最小化,同J5的行列式形式)}J6=ST1SW(需最小化,同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需满足三个条件:

  1. 非负性:Jp≥0J_p \geq 0Jp0
  2. 极值性:当两类PDF完全不重叠时,Jp=max⁡J_p = \maxJp=max;当两类PDF完全重合时,Jp=0J_p = 0Jp=0
  3. 对称性: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)ln⁡p(x∣ω1)p(x∣ω2)dx+∫RDp(x∣ω2)ln⁡p(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(ωix)=^pi(满足∑i=1cpi=1\sum_{i=1}^c p_i = 1i=1cpi=1,c为类别数),则后验熵定义为:
Hc(x)=Hc(p)=−∑i=1cpilog⁡piH_c(x) = H_c(p) = -\sum_{i=1}^c p_i \log p_iHc(x)=Hc(p)=i=1cpilogpi

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)=log⁡cH_c(x)=\log cHc(x)=logc(不确定性最高)。

2.3.2 熵的性质

  • 非负性:Hc(x)≥0H_c(x) \geq 0Hc(x)0
  • 上界性:Hc(x)≤log⁡cH_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 XxX),Y为类别变量(取值y∈Yy \in YyY),则X与Y的互信息定义为:
I(X,Y)=∑x∈X∑y∈Yp(x,y)log⁡2p(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)=0I(X,Y)=0I(X,Y)=0,则X与Y独立,特征X对分类无帮助;
  • I(X,Y)I(X,Y)I(X,Y)越大,特征X与类别Y的相关性越强,分类贡献越大。

2.4.2 可分性判据设计

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

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

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

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

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

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

  1. 确定目标判据(如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));
  2. 通过矩阵求导、拉格朗日乘数法等数学工具,求解使判据最大的WWW
  3. 验证降维后的数据是否满足分类需求,必要时调整d的取值。

3.2 基于不同判据的变换方法

3.2.1 基于离差阵判据的变换

J1=Tr(SW−1SB)J_1 = \text{Tr}(S_W^{-1} S_B)J1=Tr(SW1SB)为例,其对应的最优变换矩阵WWWSW−1SBS_W^{-1} S_BSW1SB的前d个最大特征值对应的特征向量构成。

  • 物理意义:这些特征向量方向是“类间差异最大、类内差异最小”的方向,能最大限度保留分类信息。
  • 适用场景:多类分类问题,且类内分布近似高斯分布。

3.2.2 基于JBJ_BJBJCJ_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[(Σ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. 两两类别法:计算所有两两类别对的判据(如JB(ωi,ωj)J_B(\omega_i, \omega_j)JB(ωi,ωj)),取平均值作为总判据;
  2. 全局判据法:直接使用多类离差阵(如SW,SBS_W, S_BSW,SB)构造判据(如J1=Tr(SW−1SB)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,类内离差分别为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个特征向量相互正交,且每个向量都最大化类间与类内离差比”。

其求解步骤为:

  1. 计算多类离差阵SWS_WSWSBS_BSB
  2. 求解广义特征值问题SBω=λSWωS_B \omega = \lambda S_W \omegaSBω=λSWω
  3. 选取前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_BSW1SB的最大特征值对应的特征向量。重复该过程(每次正交化已选向量),可得到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[(xx)(xx)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=TTxTTT为D×D正交矩阵,满足TTT=IT^T T = ITTT=I)。

5.2.2 DKLT的两种形式

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

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

5.3 DKLT的核心性质

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

  1. 正交性/不相关性:变换后的数据yyy的协方差阵Cy=TTCxT=ΛC_y = T^T C_x T = \LambdaCy=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)最小,即MSE=E[∥x−x^∥2]=∑i=d+1DλiMSE = E\left[ \| x - \hat{x} \|^2 \right] = \sum_{i=d+1}^D \lambda_iMSE=E[xx^2]=i=d+1Dλix^\hat{x}x^为x的重构值)。
  4. 能量集中性:数据的“能量”(方差)主要集中在前d个主成分,后续成分可视为噪声,因此PCA兼具去噪功能。
  5. 不确定性最小:变换后数据的熵最小(熵与方差正相关),即数据的不确定性最低,信息更明确。

5.4 标准PCA的实现步骤

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

  1. 数据中心化:计算每个特征的均值x‾j=1n∑i=1nxij\overline{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij}xj=n1i=1nxij,将原始数据减去均值,得到零均值数据zi=xi−x‾z_i = x_i - \overline{x}zi=xixi=1,…,ni=1,\dots,ni=1,,n)。
  2. 计算协方差阵:对零均值数据,协方差阵C=1n−1ZZTC = \frac{1}{n-1} Z Z^TC=n11ZZTZ=[z1,z2,…,zn]∈RD×nZ = [z_1, z_2, \dots, z_n] \in \mathbb{R}^{D \times n}Z=[z1,z2,,zn]RD×n)。
  3. 求解特征值与特征向量:通过特征值分解(EVD)或奇异值分解(SVD),求解CCC的特征值λ1≥⋯≥λD\lambda_1 \geq \dots \geq \lambda_Dλ1λD和对应的特征向量β1,…,βD\beta_1, \dots, \beta_Dβ1,,βD
  4. 选择主成分:根据方差贡献率(∑i=1dλi∑i=1Dλi\frac{\sum_{i=1}^d \lambda_i}{\sum_{i=1}^D \lambda_i}i=1Dλii=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
  5. 数据投影:将零均值数据投影到主成分空间,得到降维后的数据Y=TdTZ∈Rd×nY = 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∣=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正则化的数学表达为:
min⁡w∑i=1N(li−wTxi)2+λ∥w∥1\min_{w} \sum_{i=1}^N (l_i - w^T x_i)^2 + \lambda \| w \|_1wmini=1N(liwTxi)2+λw1
式中λ\lambdaλ为正则化参数,∥w∥1\| w \|_1w1为L1范数,通过惩罚系数www的绝对值,使部分特征的系数为0,从而实现特征选择。

6.2 子集搜索方法

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

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. 可分性判据递推算法:在添加/删除特征时,通过递推公式更新判据值(无需重新计算整个子集的判据),大幅提升效率。

    • 例如:添加特征xkx_kxk时,J(S∪{k})=J(S)+ΔJJ(S \cup \{k\}) = J(S) + \Delta JJ(S{k})=J(S)+ΔJΔJ\Delta JΔJxkx_kxk的增量贡献)。

6.2.2 最优搜索法

最优搜索法能保证找到全局最优子集,但计算复杂度高,适用于D较小的场景(如D≤15),常见方法包括:

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

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

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

总结

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

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

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

http://www.dtcms.com/a/494459.html

相关文章:

  • python+uniapp基于微信美食点餐系统小程序
  • 【邀请函】锐成信息 × Sectigo | CLM - SSL 证书自动化运维解决方案发布会
  • 基于MATLAB实现基于距离的离群点检测算法
  • 冠县网站建设电话wordpress插件 电商
  • 【Android】RecyclerView LayoutManager 重写方法详解
  • 数据流通合规新基建 隐私计算平台的三重安全防线
  • MySQL-2--数据库的查询
  • 微信公众号商城网站开发wordpress 留言板制作
  • 虚幻基础:角色旋转控制角色视角控制
  • 【轨物方案】智慧供暖全景运营物联网解决方案
  • 超越“接收端”:解析视频推拉流EasyDSS在RTMP推流生态中的核心价值与中流砥柱作用
  • 自助建站上建的网站免费吗信息技术网站建设专业
  • 融合SpringBoot3和Vue3工程
  • 怎么学做网站制作商水县住房城乡建设网站
  • 16-机器学习与大模型开发数学教程-第1章 1-8 泰勒展开与高阶近似
  • 【学习系列】SAP RAP 6:行为定义-Concurrency Control
  • docker 运行容器限制 CPU
  • Python自动化从入门到实战(24)如何高效的备份mysql数据库,数据备份datadir目录直接复制可行吗?一篇给小白的完全指南
  • 个人可以备案网站的内容国外直播平台tiktok
  • C语言也能干大事网站开发pdf企业网站管理系统多站多语言版
  • 清理页面缓存
  • YD925输出5V,高性价比的非隔离电源方案详细介绍
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十二)Python编程之常用模块
  • SQL注入完全攻略:从手工注入到自动化工具的渗透实战
  • 做网站的价格是多少临沂网站域名
  • 深入理解 HTML `<label>` 的 `for` 属性:提升表单可访问性与用户体验
  • 大型语言模型(LLM)文本中提取结构化信息:LangExtract(一)
  • Flask应用改用Waitress运行
  • html css js网页制作成品——HTML+CSS辣条俱乐部网页设计(5页)附源码
  • Spring Boot 3零基础教程,Spring Boot WEB 开发 自动配置原理,笔记24