← 返回学习笔记

Lecture 5:特征选择与特征提取

408 学习笔记:Lecture 5:特征选择与特征提取。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。

本页目录

描述:本节区分特征选择和特征提取,推导 PCA 的最大方差与特征值问题,整理特征脸应用,并说明前向/后向特征选择与 AdaBoost 的样本权重、弱分类器权重和最终集成公式。

5.1 特征选择与特征提取

设原始样本:

$$ \boldsymbol{x}_i

\begin{bmatrix} x_{i1} & x_{i2} & \cdots & x_{iN} \end{bmatrix}^{\mathrm T} \in\mathbb R^N. $$

5.1.1 特征选择

从原有 $N$ 个特征中选出 $M$ 个:

$$ M<N. $$

输出仍是原始特征的子集,不改变每个特征的语义。

目标通常是:在减少冗余、噪声和计算量的同时,尽量保持或提高验证集上的任务性能。

5.1.2 特征提取

构造映射:

$$ f:\mathbb R^N\rightarrow\mathbb R^M, $$

得到新特征:

$$ \boldsymbol{y}=f(\boldsymbol{x}). $$

新特征通常是原特征的组合,不再直接对应某个原始维度。PCA 是线性特征提取方法;神经网络、自编码器可学习非线性特征。

5.1.3 对比

维度 特征选择 特征提取
输出 原特征子集 新构造的特征
可解释性 通常较强 取决于变换,可能较弱
典型方法 过滤、包装、嵌入式选择 PCA、LDA、自编码器
是否必须降维 通常是 通常是,也可做等维变换

5.2 PCA 基本模型

主成分分析(Principal Component Analysis,PCA)寻找数据方差最大的正交方向,并把样本投影到这些方向。

PCA 是:

  • 无监督方法,不使用类别标签。
  • 线性降维方法。
  • 保留最大方差方向,也等价于在给定维数下最小化线性正交重构误差。

设保留 $M$ 个主成分,令:

$$ U_M

\begin{bmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_M \end{bmatrix} \in\mathbb R^{N\times M}. $$

降维:

$$ \boldsymbol{y}_i

U_M^{\mathrm T} (\boldsymbol{x}_i-\boldsymbol{\mu}) \in\mathbb R^M. $$

这可看成仿射层:

$$ \boldsymbol{y}=A\boldsymbol{x}+\boldsymbol{b}, $$

其中 $A=U_M^T$、$b=-U_M^T\mu$。但 PCA 的参数由协方差特征分解/SVD 决定,不是普通神经网络那样依靠标签和反向传播训练。

5.3 数据中心化与协方差

有 $p$ 个样本:

$$ {\boldsymbol{x}_1,\ldots,\boldsymbol{x}_p}. $$

均值:

$$ \boldsymbol{\mu}

\frac{1}{p} \sum_{i=1}^{p}\boldsymbol{x}_i. $$

中心化样本:

$$ \tilde{\boldsymbol{x}}_i

\boldsymbol{x}_i-\boldsymbol{\mu}. $$

协方差矩阵可写为:

$$ \Sigma

\frac{1}{p} \sum_{i=1}^{p} \tilde{\boldsymbol{x}}_i \tilde{\boldsymbol{x}}_i^{\mathrm T}. $$

统计学无偏样本协方差常用 $1/(p-1)$。两种缩放不会改变特征向量,只会按同一比例缩放特征值。

5.4 第一主成分的推导

5.4.1 最大化投影方差

选单位方向 $\boldsymbol{u}$:

$$ \boldsymbol{u}^{\mathrm T}\boldsymbol{u}=1. $$

样本投影:

$$ y_i

\boldsymbol{u}^{\mathrm T} (\boldsymbol{x}_i-\boldsymbol{\mu}). $$

投影方差:

$$ \frac{1}{p} \sum_{i=1}^{p}y_i^2

\boldsymbol{u}^{\mathrm T} \Sigma \boldsymbol{u}. $$

PCA 求解:

$$ \max_{\boldsymbol{u}} \boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}, \qquad \text{s.t. } \boldsymbol{u}^{\mathrm T}\boldsymbol{u}=1. $$

源课件说“让每个点到直线距离的方差最大”,不准确。应是让点在该方向上的投影方差最大;从重构角度看,则是让点到所选子空间的平方距离总和最小。

5.4.2 拉格朗日乘子

$$ \mathcal L(\boldsymbol{u},\lambda)

\boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}

\lambda (\boldsymbol{u}^{\mathrm T}\boldsymbol{u}-1). $$

令梯度为零:

$$ \frac{\partial\mathcal L} {\partial\boldsymbol{u}}

2\Sigma\boldsymbol{u} -2\lambda\boldsymbol{u} =0. $$

因此:

$$ \Sigma\boldsymbol{u}

\lambda\boldsymbol{u}. $$

$\boldsymbol{u}$ 是协方差矩阵特征向量,目标值为:

$$ \boldsymbol{u}^{\mathrm T}\Sigma\boldsymbol{u}

\lambda. $$

所以第一主成分是最大特征值对应的单位特征向量。

5.5 多个主成分

第二主成分还要满足与第一主成分正交:

$$ \boldsymbol{u}_2^{\mathrm T}\boldsymbol{u}_2=1, $$

$$ \boldsymbol{u}_2^{\mathrm T}\boldsymbol{u}_1=0. $$

一般地:

$$ \boldsymbol{u}_i^{\mathrm T}\boldsymbol{u}_j

\begin{cases} 1, & i=j,\ 0, & i\neq j. \end{cases} $$

把协方差特征值降序排列:

$$ \lambda_1\geq\lambda_2\geq\cdots\geq\lambda_N\geq0. $$

前 $M$ 个特征向量构成 $U_M$。

保留方差比例:

$$ \operatorname{EVR}(M)

\frac{\sum_{j=1}^{M}\lambda_j} {\sum_{j=1}^{N}\lambda_j}. $$

可根据累计解释方差或下游验证性能选择 $M$。

5.6 PCA 算法流程

  1. 组织样本,计算均值 $\mu$。
  2. 中心化每个样本 $\tilde x_i=x_i-\mu$。
  3. 计算协方差矩阵 $\Sigma$,或直接对中心化数据做 SVD。
  4. 求特征值和特征向量。
  5. 按特征值从大到小排序。
  6. 取前 $M$ 个单位正交特征向量组成 $U_M$。
  7. 投影:

$$ y_i=U_M^T(x_i-\mu). $$

  1. 需要重构时:

$$ \hat x_i

U_My_i+\mu. $$

高维且样本较少时,直接对数据矩阵做经济型 SVD 通常比显式构造巨大协方差矩阵更稳定高效。

5.7 PCA 的注意事项

  • PCA 只看方差,不看标签;高方差方向不一定最有分类能力。
  • 特征量纲差异很大时,应先标准化,否则大尺度特征会主导主成分。
  • PCA 对异常值较敏感。
  • 主成分方向的正负号可以整体翻转,不影响所表示子空间。
  • 必须只在训练集拟合均值和主成分,再应用到验证/测试集,防止数据泄漏。

5.8 特征脸应用

课件示例使用 XM2VTS 人脸数据:

  • 295 人。
  • 每人 8 张图片,分 4 次拍摄,每次 2 张。
  • 人脸检测和对齐后缩放为 $128\times128$ 灰度图。
  • 每人前 4 张训练、后 4 张测试。
  • 训练集和测试集各:

$$ 295\times4=1180 $$

张。

每张图展平后维度:

$$ 128\times128=16384. $$

取前 100 个主成分:

$$ U_{100} \in \mathbb R^{16384\times100}, $$

输出特征:

$$ y\in\mathbb R^{100}. $$

  • 平均脸是训练图像均值 $\mu$。
  • 主成分向量重新排列成图像后称为特征脸(eigenfaces),表示人脸数据中方差最大的变化模式。
  • 它们不是“某个局部最有特征的部位”,而是覆盖整张图像的正交基方向。

课件实验结果:

分类器 识别率
最近邻 $76.02%$
SVM $80.25%$

该结果只对应课件的数据划分、预处理、PCA 维数和分类器设置,不能直接当作数据集统一基准。

5.9 特征子集搜索

从 $M$ 个候选特征选 $N$ 个,组合数为:

$$ \binom{M}{N}

\frac{M!}{N!(M-N)!}. $$

当 $M$ 较大时,穷举代价很高。

5.9.1 顺序前向选择

  1. 从空集合开始。
  2. 每轮尝试加入一个未选特征。
  3. 选择使验证指标提升最大的特征。
  4. 达到目标维数或提升不足时停止。

5.9.2 顺序后向消除

  1. 从全部特征开始。
  2. 每轮尝试删除一个特征。
  3. 删除对验证指标损害最小的特征。
  4. 达到目标维数时停止。

两者都是贪心启发式,不能保证全局最优。

源课件说“神经网络已经做了这些事情,所以递增/递减法不好用”,过于绝对。深度网络能学习表示,但显式特征选择仍可用于高维小样本、可解释性、降低采集成本和表格数据任务。

5.10 AdaBoost 基本思想

训练集:

$$ T={(x_i,y_i)}_{i=1}^{N}, \qquad y_i\in{-1,+1}. $$

AdaBoost 顺序训练多个弱分类器:

  • 每轮关注当前被错分的样本。
  • 错误率低的弱分类器获得更大组合权重。
  • 最后对弱分类器加权投票。

若弱分类器是只使用单个特征的决策树桩,被选中的弱学习器也会间接完成特征选择;但 AdaBoost 本质是提升/集成算法,不是对任意基学习器都天然等于特征选择。

5.11 AdaBoost 公式

5.11.1 初始化样本权重

$$ w_{1,i}=\frac{1}{N}, \qquad i=1,\ldots,N. $$

记:

$$ D_m=(w_{m,1},w_{m,2},\ldots,w_{m,N}). $$

5.11.2 训练弱分类器

第 $m$ 轮根据 $D_m$ 训练:

$$ G_m(x)\in{-1,+1}. $$

经典 AdaBoost 可以直接让基学习器使用样本权重;按权重有放回重采样是可选实现,不是算法必须步骤。

5.11.3 加权错误率

$$ e_m

\sum_{i=1}^{N} w_{m,i} \mathbb I(G_m(x_i)\neq y_i). $$

5.11.4 弱分类器权重

$$ \alpha_m

\frac{1}{2} \ln \frac{1-e_m}{e_m}. $$

  • 若 $e_m<1/2$,则 $\alpha_m>0$。
  • 若 $e_m=0$,公式趋于无穷,实现时需提前停止或做数值裁剪。
  • 若 $e_m\geq1/2$,该弱分类器不比随机猜测好,应停止、重训或调整学习器。

5.11.5 更新样本权重

$$ w_{m+1,i}

\frac{ w_{m,i} \exp[-\alpha_my_iG_m(x_i)] }{Z_m}, $$

其中归一化因子:

$$ Z_m

\sum_{i=1}^{N} w_{m,i} \exp[-\alpha_my_iG_m(x_i)]. $$

若分类正确,$y_iG_m(x_i)=1$,权重乘 $e^{-\alpha_m}$;若分类错误,乘 $e^{\alpha_m}$。归一化后,错分样本的相对权重上升。

5.11.6 最终分类器

$$ f(x)

\sum_{m=1}^{M} \alpha_mG_m(x), $$

$$ G(x)=\operatorname{sign}[f(x)]. $$

5.12 AdaBoost 流程

  1. 初始化所有样本权重为 $1/N$。
  2. 训练一个加权错误率尽量小的弱分类器。
  3. 计算 $e_m$ 和 $\alpha_m$。
  4. 提高错分样本权重,降低正确样本权重并归一化。
  5. 重复 $M$ 轮。
  6. 按 $\alpha_m$ 对所有弱分类器加权投票。

AdaBoost 对噪声和异常点可能敏感,因为持续错分的样本会获得很高权重。

5.13 易错点

  • 特征选择保留原维度子集,特征提取生成新维度,两者不能混用。
  • PCA 最大化的是投影方差,不是点到主轴距离的方差。
  • PCA 投影前必须中心化;量纲差异大时还应标准化。
  • 第一主成分是最大特征值对应方向,后续主成分还要与已选方向正交。
  • 变换矩阵取法要统一:若主成分按列组成 $U_M$,则降维是 $U_M^T(x-\mu)$。
  • PCA 不使用标签,高方差方向不一定最适合分类。
  • $128\times128$ 图像展平维度是 16384;100 个特征脸组成的基矩阵是 $16384\times100$。
  • 从 $M$ 个特征选 $N$ 个的组合数是 $M!/[N!(M-N)!]$。
  • 顺序前向和后向选择是贪心算法,不能保证最优子集。
  • AdaBoost 通常直接使用样本权重;重采样只是可选实现。
  • AdaBoost 样本权重更新必须包含指数项和归一化因子 $Z_m$。
  • AdaBoost 是集成算法;只有在弱学习器按特征构造时,才自然体现特征选择效果。

相关知识

5.14 本节复盘

  • 特征选择从原特征中挑子集,特征提取把原特征映射为新表示。
  • PCA 是无监督线性降维,选择协方差矩阵最大特征值对应的正交方向。
  • 前 $M$ 个主成分最大化保留方差,并在正交线性投影中最小化重构误差。
  • PCA 流程包括中心化、协方差/SVD、特征排序、投影和可选重构。
  • 特征脸把高维人脸图像投影到少量主成分坐标,再交给最近邻或 SVM 分类。
  • 特征子集穷举具有组合爆炸,顺序前向和后向方法用贪心方式近似搜索。
  • AdaBoost 顺序训练弱分类器,提高错分样本权重,并按弱分类器可靠性加权投票。
  • AdaBoost 的核心公式是加权错误率、$\alpha_m$、指数样本权重更新和最终符号函数。