Schwertlilien
As a recoder: notes and ideas.

模式识别-Ch7-特征提取与特征选择

Ch7 特征提取与特征变换

image-20250103152522497

[TOC]

引言

特征提取的目的 特征变换的目的
提取观测数据的内在特性 降低特征空间的维度,增加数据密度、降低过拟合 风险
减少噪声影响 便于分析和减少后续步骤的计算量
提高稳定性 减少特征之间可能存在的相关性、有利于分类

特征提取

提取对象 提取方式
语音特征提取 局部特征提取方法:LBP, SIFT
文本特征提取 全局特征提取方法:词袋模型, HoG
视觉特征提取 ---

特征变换:根据特征变换关系不同

线性特征变换 非线性特征变换
采用线性映射将原特征变换至一个新的空间(通常维度更低) 采用非线性映射将原特征变换至一个新的空间(通常性能更好)
PCA,LDA,ICA KPCA,KLDA,Isomap,LLE,HLLE,LSTA

特征提取

文本特征提取

将文本内容转化为向量的过程。将一个文档表示成一个向量,向量的相似性反应文档的相似性。

向量空间模型(BOW, TF-IDF)

image-20250103140257192
image-20250103140308914
image-20250103140514019

词向量模型(word2vec)

image-20250103140606343

视觉特征提取

局部二值模式(LBP)

image-20250103141211845

特征变换

对已有向量特征进行变换,得到新特征的过程。

维数缩减

维度灾难是指当数据的维度(特征数)过高时,模型计算复杂度高、存储开销大、距离计算变得不准确,甚至模型性能下降的问题。

image-20250103141444290

缓解维数灾难:降维。通过维数缩减,可以将原始高维空间的数据投影到一个低维子空间中。

  • 在低维子空间里,数据的密度通常会大幅度提高。
  • 数据的距离计算、分类、聚类等操作会变得更容易、更准确。

Q: 为什么能降维?

A: 在很多情况下,尽管我们采集的数据是高维的,但这些高维数据的本质特征通常只分布在低维空间内。这种现象是因为:

  • 冗余特征:许多特征是高度相关的,含有重复信息。
  • 任务相关特征嵌入低维空间:与学习任务密切相关的特征往往位于某个低维子空间内,而不相关的特征只会引入噪声。

通俗理解:高维数据往往有很多“水分”(冗余和噪声),通过降维可以提取出核心信息,就像将大海捞针简化为池塘捞针。

非均匀性祝福:数据在高维空间中的分布可能看起来稀疏,但实际上,它们大多集中在一个低维流形(低维嵌入空间)上。

image-20250103142013461

线性降维法

  • 对高维空间中的样本\(x\)进行线性变换:

    \(y = W^Tx\),其中\(x\in R^m\)\(W\in R^{m\times d}\)\(y\in R^d\)\(d < m\)

  • 变换矩阵\(W = [w_1,w_2,\cdots,w_d]\)可视为\(m\)维空间中由\(d\)个基向量组成的矩阵。

  • \(y = W^Tx\)可视为样本\(x\)\(d\)个基向量分别做内积而得到,即\(x\)在新坐标系下的坐标。新空间中的特征是原空间中特征的线性组合,这就是线性降维法。

  • 不同降维方法的差异:对低维子空间的性质有不同的要求,即对\(W\)施加不同的约束。

PCA

image-20250103142118552

给定条件:\(n\)个样本\(x_1,x_2,\cdots,x_n\),每个样本\(x_i\in R^d\)

目标:我们想要在投影数据中捕获最大可能的方差,即把数据从\(d\)维投影到\(m\)维,其中\(m < d\)

\(w_1,w_2,\cdots,w_m\in R^d\)是主成分,假设\(w\)满足正交性:\((w_i)^Tw_j = 0\)\(\forall i\neq j\),且\((w_i)^Tw_i = 1\)\(i,j = 1,2,\cdots,m\)。我们只需要前\(m\)个主成分。

成分 对应公式
数据点\(x_i\)沿\(w_1\)的投影\(y_i\) \(y_i = w_1^Tx_i\)
均值\(\overline{x}\)沿\(w_1\)的投影\(\overline{y}\) \(\overline{y}=w_1^T\overline{x},\ \overline{x}=\frac{1}{n}\sum_{i = 1}^{n}x_i\)
投影数据(沿投影方向\(w_1\))的方差 \(\text{var}=\frac{1}{n}\sum_{i = 1}^{n}(w_1^Tx_i - w_1^T\overline{x})^2\)
想要获得使投影数据方差最大化的方向\(w_1\) \(\max\frac{1}{n}\sum_{i = 1}^{n}(w_1^Tx_i - w_1^T\overline{x})^2,\ w_1^Tw_1 = 1\)

\[ \begin{align} \text{var}&=\frac{1}{n}\sum_{i = 1}^{n}(w_1^Tx_i - w_1^T\overline{x})^2\\ &=\frac{1}{n}\sum_{i = 1}^{n}(w_1^Tx_i - w_1^T\overline{x})(w_1^Tx_i - w_1^T\overline{x})^T\\ &=\frac{1}{n}\sum_{i = 1}^{n}w_1^T(x_i - \overline{x})(x_i - \overline{x})^Tw_1\\ &=w_1^T\left(\frac{1}{n}\sum_{i = 1}^{n}(x_i - \overline{x})(x_i - \overline{x})^T\right)w_1\\ &=w_1^TCw_1 \end{align} \]

其中\(C=\frac{1}{n}\sum_{i = 1}^{n}(x_i - \overline{x})(x_i - \overline{x})^T\)是数据的协方差矩阵。则有: \[ \max w_1^TCw_1\\ s.t.\ w_1^Tw_1 = 1 \] 现在引入拉格朗日乘子\(\lambda\)到这个问题中,得到如下目标函数: \[ \text{obj}=w_1^TCw_1-\lambda(w_1^Tw_1 - 1)\\ \frac{\partial\text{obj}}{\partial w_1}=2Cw_1 - 2\lambda w_1 = 0\\ Cw_1=\lambda w_1 \] 这只是一个特征值方程。因此,\(w_1\)必须是\(C\)的一个特征向量。

我们现在知道\(w_1\)必须是\(C\)的一个特征向量,\(\lambda\)是相应的特征值。但是,\(C\)有多个特征向量,哪一个是\(w_1\)呢?

考虑: \[ w_1^TCw_1 = w_1^T\lambda w_1=\lambda w_1^Tw_1=\lambda \] 我们想要最大化投影数据方差\(w_1^TCw_1=\lambda\):因此\(\lambda\)应该是最大的特征值,\(w_1\)\(C\)的第一个特征向量(具有特征值\(\lambda\)),这是第一个主成分(数据中方差最大的方向)。

image-20250107092401520

若A是对称阵,此时左特征空间=右特征空间、U=V:

image-20250107092632468

算法实现

步骤 公式
计算数据均值 \(\overline{x}=\frac{1}{n}\sum_{i = 1}^{n}x_i\)
计算数据的协方差矩阵 \(C=\frac{1}{n}\sum_{i = 1}^{n}(x_i - \overline{x})(x_i - \overline{x})^T\)
对矩阵\(C\)进行特征值分解 取最大的\(m\)个特征值\(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_m\)对应的特征向量\(w_1,w_2,\cdots,w_m\),组成投影矩阵\(W = [w_1,w_2,\cdots,w_m]\in R^{d\times m}\)
将每一个数据进行投影 \(y_i = W^Tx_i\in R^m\)\(i = 1,2,\cdots,n\)

进一步的分析

Q: 如何仅用一个超平面从整体上对所有样本\(\{x_1,x_2,\cdots,x_n\}\subseteq R^m\)进行恰当的表示?

A: 通常有如下两种思路:

  • 可区分性:样本点在这个超平面上的投影能够尽可能地分开。(方差最大化)
  • 可重构性:样本到这个超平面的距离都足够近。(重构误差最小化)

PCA -采用最大可分性观点

image-20250103150951248

PCA——采用重构的观点

\(W\)定义新坐标系:假定投影变换是正交变换,即新坐标系由\(W = [w_1,w_2,\cdots,w_d]\in R^{m\times d}\)来表示(\(d < m\)),\(w_i\)的模等于1,\(w_i\)\(w_j\)两两正交。

设样本点\(x_i\)在新坐标系下的坐标为: \[ y_i = [y_{i1},y_{i2},\cdots,y_{id}]^T\in R^d\\ y_{ij}=w_j^Tx_i,\quad w_j\in R^m,\quad j = 1,2,\cdots,d\\ \iff y_i = W^Tx_i \] 在旧坐标系下,可得\(x_i\)的重构表示: \[ \hat{x}_i=\sum_{j = 1}^{d}y_{ij}w_j = Wy_i,\quad i = 1,2,\cdots,n \] 重构误差: \[ \begin{align} \sum_{i = 1}^{n}\|x_i - \hat{x}_i\|^2&=\sum_{i = 1}^{n}\|x_i - Wy_i\|^2\\ &=\sum_{i = 1}^{n}((Wy_i)^TWy_i - 2x_i^TWy_i + x_i^Tx_i)\\ (\because W^TW = I)&=\sum_{i = 1}^{n}(y_i^Ty_i - 2y_i^Ty_i + x_i^Tx_i)\\ (\because y_i = W^Tx_i)&=-\sum_{i = 1}^{n}y_i^Ty_i+\text{const}=-\sum_{i = 1}^{n}(W^Tx_i)^T(W^Tx_i)+\text{const}\\ &=-\text{tr}\left(\sum_{i = 1}^{n}(W^Tx_i)^T(W^Tx_i)\right)+\text{const}\\ (\because \text{tr}(AB)=\text{tr}(BA))&=-\text{tr}\left(W^T\sum_{i = 1}^{n}x_ix_i^TW\right)+\text{const}\\ (\because tr(A)+tr(B)=tr(A+B)) \end{align} \]\(X = [x_1,x_2,\cdots,x_n]\in R^{m\times n}\): \[ \begin{align} \sum_{i = 1}^{n}\|x_i - \hat{x}_i\|^2&=tr(W^T\sum_{i = 1}^{n}x_ix_i^TW)+\text{const}\\ &=-\text{tr}\left(W^TXX^TW\right)+\text{const} \end{align} \] 假定数据已经零均值化,即\(\overline{x}=\frac{1}{n}\sum_{i = 1}^{n}x_i = 0\) \[ XX^T=\sum_{i = 1}^{n}x_ix_i^T=\sum_{i = 1}^{n}(x_i - \overline{x})(x_i - \overline{x})^T=nC \] 于是,获得主成分分析的最优化模型: \[ \max_{W\in R^{m\times d}}\text{tr}(W^TCW)=\sum_{i = 1}^{d}w_i^TCw_i\\ s.t.\ W^TW = I \]

讨论: - 降低至多少维:\(\frac{\sum_{i = 1}^{d}\lambda_i}{\sum_{i = 1}^{t}\lambda_i}\geq t\)(比如,\(t = 95\%\)) - 也可以采用交叉验证,结合最近邻分类器来选择合适的维度\(d\)。 - 舍弃\(m - d\)个特征值对应的特征向量导致了维数缩减。 - 舍弃这些信息之后能使样本的采样密度增大,这正是降维的重要动机。 - 另外,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃可在一定程度上起到去噪的效果。

LDA

线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的线性判别学习方法。

算法思想:对于两类分类问题,给定训练集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能接近,不同类样本的投影点尽可能相互远离。对新样本分类时,将其投影到这条直线上,再根据投影点的位置来判断其类别。

image-20250103142504610

样本集\(D = \{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}\)\(y_i\in\{0,1\}\),令\(X_i\)\(\mu_i\)\(\Sigma_i\)分别表示第\(i\in\{0,1\}\)类的样本集合、均值向量、协方差矩阵。

若将数据投影到方向\(w\)上,则两类样本的中心在直线上的投影分别为\(w^T\mu_0\)\(w^T\mu_1\);两类样本的协方差分别为\(w^T\Sigma_0w\)\(w^T\Sigma_1w\)

  • 欲使同类样本的投影点尽可能接近,可让同类样本投影点的方差尽可能小,即\(w^T\Sigma_0w + w^T\Sigma_1w\)尽可能小。

  • 欲使异类样本的投影点尽可能远离,可让类中心点之间的距离尽可能大,即\((w^T\mu_0 - w^T\mu_1)^2\)尽可能大。

最大化如下目标函数: \[ J=\frac{\|w^T\mu_0 - w^T\mu_1\|^2_2}{w^T\Sigma_0w + w^T\Sigma_1w}\\ =\frac{(u_0-u_1)^Tww^T(u_0-u_1)}{w^T(\Sigma_0+\Sigma_1)w}\\ =\frac{w^T(\mu_0 - \mu_1)(\mu_0 - \mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w} \] 主要因为\(w^T(u_0-u_1)\)得到的数,所以才可以交换。分子使两个类的中心距离尽可能远;分母使两类的类内方差尽可能小。

定义矩阵形式:

类内散度矩阵 类间散度矩阵
\(\begin{align}S_w&=\Sigma_0+\Sigma_1\\&=\sum_{x\in X_0}(x - \mu_0)(x - \mu_0)^T+\sum_{x\in X_1}(x - \mu_1)(x - \mu_1)^T\end{align}\) \(S_b=(\mu_0 - \mu_1)(\mu_0 - \mu_1)^T\)

目标函数重写为(广义Rayleigh商): \[ J=\frac{w^T S_b w}{w^T S_w w} \] 注意:\(J\)的值与向量的长度无关,只与其方向有关,不失一般性可令\(w\)为单位长度的向量。

由于目标函数值与长度无关(只与方向有关),因此可采用一种更直观的方法:令\(w^T S_w w = 1\)\[ \max w^T S_b w,\quad s.t.\quad w^T S_w w = 1 \] 根据拉格朗日乘子法,于是有: \[ S_b w=\lambda S_w w\Rightarrow S_w^{-1}S_b w=\lambda w \] 上式表明:\(w\)为是矩阵\(S_w^{-1}S_b\)的特征向量。

构造性求解方法 : \[ S_b=(\mu_0 - \mu_1)(\mu_0 - \mu_1)^T\\ S_b w=(\mu_0 - \mu_1)(\mu_0 - \mu_1)^T w=s\cdot(\mu_0 - \mu_1),\quad s = (\mu_0 - \mu_1)^T w\in R \] 上式表明:\(S_b w\)方向与\(\mu_0 - \mu_1\)的方向相同。不妨令$ S_b w=(_0 - _1)$:

我有想:为什么\(\lambda\)可以等价于\(s\)?

但想了一下,假使\(\lambda'=s'=\lambda\cdot s\)就可以了。

\[ S_b w=\lambda(\mu_0 - \mu_1)\\ \because S_b w=\lambda S_w w\\ w = S_w^{-1}(\mu_0 - \mu_1) \]

所以最终的结果就是得到投影:\(w= S_w^{-1}(\mu_0 - \mu_1)\)

投影后,可以对两类数据进行分类:\(z=w^Tx\)

多类LDA算法(设类别数为c)

相关矩阵定义

  • 全局散度矩阵: \[ S_t=\sum_{i = 1}^{n}(x_i - \mu)(x_i - \mu)^T,\quad \mu=\frac{1}{n}\sum_{i = 1}^{n}x_i \]

  • 类内散度矩阵: \[ S_w=\sum_{j = 1}^{c}S_{wj},\quad S_{wj}=\sum_{x\in X_j}(x - \mu_j)(x - \mu_j)^T,\quad \mu_j=\frac{1}{n_j}\sum_{x\in X_j}x \]

  • 类间散度矩阵: \[ S_b = S_t - S_w=\sum_{j = 1}^{c}n_j(\mu_j - \mu)(\mu_j - \mu)^T \]

其中,\(n_j\)为属于第\(j\)类的样本个数。

image-20250103162453080

Problem 1与Problem 2的解是不同的,Problem 2的解可以通过求解如下广义特征值问题得到\(S_bw=\lambda S_ww\); Problem 1的求解较复杂【略】

局部线性判别分析

LDA局限性

  • LDA假设数据是高斯分布的,这在很多真实数据中不一定成立。
  • LDA希望类间距离大(分类区分性高),同时使 类内距离小(紧凑性强)。但对于复杂的、高维数据,这种方法可能无法捕捉到数据的局部结构,导致投影结果并不能有效区分类别。

局部线性判别分析旨在克服LDA的局限性,主要考虑数据的局部几何结构,即通过局部近邻关系,改善分类能力和特征提取效果。

核心思想: 修改LDA中的类内散度矩阵\(S_w\)和类间散度矩阵\(S_b\),引入局部近邻约束加权机制来更准确地描述数据的分布。 \[ S_w=\sum_{y_i = y_j,x_j\in N(x_i),x_i\in N(x_j)}(x_i - x_j)(x_i - x_j)^T\\ S_b=\sum_{y_i\neq y_j,x_j\in N(x_i),x_i\in N(x_j)}(x_i - x_j)(x_i - x_j)^T \]

局部分析技术

  • Neighborhood constraints(方法一,近邻判别分析)
  • Locally weighting(方法二,局部Fisher判别分析)
    • Weighting for 1 - NN
    • Local Fisher discriminant analysis

近邻判别分析(NNDA)

近邻约束中的一个问题是近邻数\(k\)的选择。

image-20250103163851177

此图展示了两类最近邻加权的示意图,分别用浅蓝色和紫色表示不同类别的数据点,\(x_i\)\(x_j\)是不同类中的数据点,\(d_1\)\(d_2\)是距离。

image-20250103163939437

展示了多类最近邻加权的示意图,分别用浅蓝色、橙色和紫色表示不同类别的数据点,\(x_i\)\(x_j\)是不同类中的数据点,\(d_1\)\(d_2\)是距离。

对相关矩阵修改: - 类内散度矩阵: \[ S_w=\sum_{y_i = y_j,x_j\in N_{I - nn}(x_i),i = 1,2,\cdots,n}W_{i}(x_i - x_j)(x_i - x_j)^T \] - 类间散度矩阵: \[ S_b=\sum_{y_i\neq y_j,x_j\in N_{I - nn}(x_i),i = 1,2,\cdots,n}W_{i}(x_i - x_j)(x_i - x_j)^T \] image-20250103164103744

局部Fisher判别分析(LFDA)

动机:

  • LFDA不强制要求同一类中相距较远的数据对接近,这样可以更好地保留数据的局部几何结构。
  • 通过邻域加权机制,强调局部的关系而不是全局的特性。

构建仿射矩阵A \[ \begin{align} A&=\begin{pmatrix} A_{11} & A_{12} & \cdots & A_{1n}\\ A_{21} & A_{22} & \cdots & A_{2n}\\ \cdots & \cdots & \cdots & \cdots\\ A_{n1} & A_{n2} & \cdots & A_{nn} \end{pmatrix}\\ A_{ij}&=\begin{cases} 1, & \text{if } x_j \text{ is a neighbor of } x_i\\ 0, & \text{otherwise} \end{cases}\\ \text{or}\ A_{ij}&=\begin{cases} \exp(-\left\|x_j - x_i\right\|^2/(2\sigma^2)), & \text{if } x_j \text{ is a neighbor of } x_i\\ 0, & \text{otherwise} \end{cases} \end{align} \] 修改相关矩阵

  • 类内散度矩阵 \[ S_w=\frac{1}{2}\sum_{i,j}\overline{A}_{ij}^{(w)}(x_i - x_j)(x_i - x_j)^T\\ \overline{A}_{ij}^{(w)}=\begin{cases} A_{ij}/n_c, & \text{if } y_i = y_j = c\\ 0, & \text{if } y_i\neq y_j \end{cases} \]

  • 类间散度矩阵 \[ S_b=\frac{1}{2}\sum_{i,j = 1}^{n}\overline{A}_{ij}^{(b)}(x_i - x_j)(x_i - x_j)^T\\ \overline{A}_{ij}^{(b)}=\begin{cases} A_{ij}(1/n - 1/n_c), & \text{if } y_i= y_j = c\\ 1/n, & \text{if } y_i \neq y_j \end{cases} \]

image-20250103164525316

特征选择

特征变化和特征选择是处理高维数据的两大主流技术。

任务:给定一个学习任务、对于给定的特征数据特征集,从中选出与任务相关(对学习任务有利)的特征子集。

目的:降维、去除冗余、选择与任务相关的特征。

image-20250103191214079
image-20250103194027772

评价准则

“理想”评价准则:对分类任务,评价准则\(J_{ij}\)反映在一组特征下,第\(i\)类和第\(j\)类的可分尺度。

image-20250103191600229

基于距离的评价准则

\(x_i^{(k)}\in R^d\)\(x_j^{(l)}\in R^d\)分别为类别\(\omega_i\)\(\omega_j\)的两个样本。记两者之间的距离为:\(d(x_i^{(k)},x_j^{(l)})\)

定义所有类别上的总距离为: \[ J_d(x)=\frac{1}{2}\sum_{i = 1}^{c}\sum_{j = 1}^{c}P_iP_j\sum_{k = 1}^{n_i}\sum_{l = 1}^{n_j}d(x_i^{(k)},x_j^{(l)}) \] 其中,\(P_i\):第\(i\)类的先验概率;\(n_i\):第\(i\)类的样本数。

若采用平方欧氏距离:\(d(x_i^{(k)},x_j^{(l)})=(x_i^{(k)} - x_j^{(l)})^T(x_i^{(k)} - x_j^{(l)})\),则有: \[ J_d(x)=\sum_{i = 1}^{c}P_i\left[\frac{1}{n_i}\sum_{k = 1}^{n_i}(x_i^{(k)} - m_i)^T(x_i^{(k)} - m_i)+(m - m_i)^T(m - m_i)\right] \] 其中,\(m_i\):第\(i\)类的中心;\(m\):所有数据点的中心。

利用散度矩阵,可将上式整理成更简单的形式。

定义类间/类内散度如下: \[ S_b=\sum_{i = 1}^{c}P_i(m_i - m)(m_i - m)^T\\ S_w=\sum_{i = 1}^{c}P_i\frac{1}{n_i}\sum_{k = 1}^{n_i}(x_i^{(k)} - m_i)(x_i^{(k)} - m_i)^T\\ J_d(x)=\text{tr}(S_b + S_w) \]

特别地,上述计算可以定义在任何特征子集上!

类似于线性判别准则,可定义如下的评价准则,其核心思想是使类内散度尽可能小,类间、散度尽可能大。常用的5个判据: \[ \begin{align} J_1(x)&=\text{tr}(S_b + S_w)\\ J_2(x)&=\text{tr}(S_w^{-1}S_b)\\ J_3(x)&=\frac{\text{tr}(S_b)}{\text{tr}(S_w)}\\ J_4(x)&=\frac{\vert S_b\vert}{\vert S_w\vert}\\ J_5(x)&=\frac{\vert S_b + S_w\vert}{\vert S_w\vert} \end{align} \]

基于分布的评价准则:基于类条件概率密度函数

假设定义了基于类条件概率密度函数\(p(x\vert \omega_i)\)\(p(x\vert \omega_j)\)之间的一个“距离”函数:

  • 该“距离”函数应该是非负的;

  • 该距离应反映这两个条件分布之间的重合程度;

    • 当这两个条件分布不重叠时,该距离函数取得最大值;

    • 当这两个条件分布一样时,该距离函数应该取零值。

定义\(x\)点处的对数似然比: \[ L_{ij}(x)=\ln\frac{p(x|\omega_i)}{p(x|\omega_j)} \] KL散度:也称为相对熵(relative entropy),定义为对数似然比的数学期望: \[ KL_{ij}\triangleq E[L_{ij}(x)]=\int p(x|\omega_i)\ln\frac{p(x|\omega_i)}{p(x|\omega_j)}dx \] 注意,KL散度不是一个度量:\(KL_{ij}\neq KL_{ji}\)。可将其变成一个度量: \[ J_{ij}=KL_{ij}+KL_{ji}=\int\left[p(x|\omega_i)-p(x|\omega_j)\right]\ln\frac{p(x|\omega_i)}{p(x|\omega_j)}dx \]

基于熵的评价准则:基于类后验概率分布

后验概率\(P(\omega_i\vert x)\)反映特征\(x\)刻画类别\(i\)的有效性。

两个极端例子:

  • 如果后验概率对于所有的类别都一样,即\(P(\omega_i\vert x)=\frac{1}{c}\),则说明该特征对类别没有任何鉴别性;
  • 如果后验概率对于类别\(i\)\(1\),对其他类别均为\(0\),即\(P(\omega_i\vert x)=1\),则说明特征非常有效。

对于某个给定特征,样本属于各类的后验概率越平均,越不利于分类;如果越集中于某一类,则越有利于分类。因此,可利用后验概率的信息熵来度量特征对类别的可分性。

信息熵:可用来衡量一个随机事件发生的不确定性,不确定越大,信息熵越大。

香农熵 平方熵
\(H(x)=-\sum_{i = 1}^{c}P(\omega_i\vert x)\log_2P(\omega_i\vert x)\) \(H(x)=2\left[1-\sum_{i = 1}^{c}(P(\omega_i\vert x))^2\right]\)

使用时要求期望:\(E[H(x)]=\int p(x)H(x)dx\)

最优特征选择方法

穷举法

从给定的\(d\)个特征中,挑选出\(m\)个特征,若采用穷举法,需要遍历\(\frac{d!}{(d - m)!m!}\)个子集。当\(d\)很大时,该方法计算量巨大。能否有更聪明的搜索方法?

分支界定法

基本思想:将所有可能的特征组合以树的形式进行表示,采用分枝定界方法对树进行搜索,使得搜索过程尽早达到最优解,而不必搜索整个树。

基本前提:特征评价准则对特征具有单调性,即特征增多时,判据值不会减少: \[ X_1\subseteq X_2\subseteq\cdots\subseteq X_m\Rightarrow J(X_1)\leq J(X_2)\leq\cdots\leq J(X_m) \] 基于KL散度和基于信息熵的评价准则满足上述要求。

特征子集的树表示

  • 根节点包含全部特征;
  • 每一个节点,在父节点基础上去掉一个特征,并将去掉的特征序号写在节点的旁边;
  • \(d\)维特征,若选择\(m\)个特征,每一级去掉一个特征,则需要\(d - m\)层达到所需特征数量,即树的深度为\(d - m\)。(\(d = 4,m = 2\))
image-20250103195050384

树的生长过程(树的构造)

  1. 将所有特征组成根节点,根节点记为第0层;

  2. 对于第1层,分别计算“去掉上一层节点单个特征后”剩余特征的评价判据值,按判据值从小到大进行排序,按从左到右的顺序生成第1层的节点;

  3. 对于第2层,针对上一层最右侧的节点开始,重复第2步;

  4. 依次类推,直到第\(d - m\)层,到达叶子节点,记录对应的判据值\(J\),同时记录对应的特征选择集合。

回溯:从第一个叶子结点开始,对树进行回溯

image-20250103195643863
image-20250103195710139

树的回溯的总体思路:对树搜索时进行分枝限界,从右到左、从上到下

特征选择的次优方法

image-20250103193828131

过滤式选择方法

基本思想:过滤式方法先对数据集进行特征选择,再训练分类器。

核心任务:如何定义特征的评价准则和搜索策略

算法特点:

  • 特征选择过程与后续学习器无关;
  • 启发式特征选择方法,无法获得最优子集;
  • 与包裹式选择方法相比,计算量降低了

单独特征选择:Relief方法

假设:特征相互独立,子集性能=包含各特征性能之和。

image-20250103201737505

二分类:

对于样本\(x_i\):

  • 猜中近邻(nearest-hit): 其同类样本中的最近邻\(x_{i,nh}\)
  • 猜错近邻(nearest-miss): 其不同类样本中的最近邻\(x_{i,nm}\)

特征性能判据:

image-20250103203337208

多分类

image-20250103203412385

包裹式特征选择方法

过滤式特征选择方法 包裹式特征选择方法
先对数据集进行特征选择,然后再训练分类器 对给定分类方法,选择最有利于提升分类性能的特征子集
特征选择过程与分类单独进行,特征选择评价判据间接反应分类性能 特征选择过程与分类性能相结合,特征评价判据为分类器性能
  • 通常采用交叉验证来评价选取的特征子集的好坏。
  • \(k\)折交叉验证(\(k\)-fold cross validation),留一法(Leave - one - out)
  • 包裹式特征选择方法对分类器的基本要求:
    • 分类器能够处理高维特征向量;
    • 特征维度很高、样本个数较少时,分类器依然可以取得较好的效果。

主要方法

  • 直观方法:给定特征子集,训练分类器模型,以分类器错误率为特征性能判据,进行特征选择。
    • 需要大量尝试不同的特征组合,计算量大。
  • 替代方法(递归策略):首先利用所有的特征进行分类器训练,然后考查各个特征在分类器中的贡献,逐步剔除贡献小的特征。
    • 递归支持向量机(R - SVM:Recursive SVM)
    • 支持向量机递归特征剔除(SVM - RFE)
    • Adaboost

嵌入式特征选择--基于\(L_1\)范数的特征选择

基本思路:在学习 w 的时候,对 w 进行限制,使其不仅能满足训练样本的误差要求,同时使得 w 中非零元素尽可能少(只使用少数特征)。

image-20250103232816637
image-20250103232839749

总结

特征选择的一般技术路线

  1. 确定特征子集
  2. 评价特征子集性能

评价特征子集性能常用的可分性判据

  • 基于类内类间距离的可分性判据
  • 基于熵的可分性判据
  • 基于SVM模型的可分性判据

确定特征选择子集的方法

  • 基于树的方法(最优算法):基于分枝限界技术对特征子集的树表示进行遍历,只需要查找一小部分特征组合,即可找到全局最优的特征组合
  • 遍历法(次优算法):顺序前向法、顺序后向法、增减r法
  • 稀疏约束

根据特征选择与分类器的结合程度

  • 过滤式特征选择方法:“选择”与“学习”独立
  • 包裹式特征选择方法:“选择”依赖“学习”
  • 嵌入式特征选择方法:“选择”与“学习”同时进行
搜索
匹配结果数:
未搜索到匹配的文章。