跳转至

机器学习笔记:稀疏学习与特征学习

内容来源:西瓜书(周志华《机器学习》)


核心观点

机器学习最重要的并不是模型,而是**数据**。模型上 XGBoost 能够干碎大部分花里胡哨的操作,经济学更是线性回归绝对优势,基本上都是具体问题具体分析再针对性地有所操作。

关键在于**信息**,在于**数据**。机器学习与数据科学的强绑定也来自于此。

这主要还是因为机器学习的特性:维数爆炸。要想把握现实中各个事物的关系,其实要考虑很多的变量,将其打包成一个 \(x\) 之后,就很自然的发现这个 \(x\) 是一个维数很高的向量。但归根到底,一个事物往往没有想象中的复杂,变量之所以多,是因为有噪声干扰。

有两种操作可以减小影响: 1. 降维:直接合成看似复杂的数据 2. 特征选取:去掉不重要的部分


一、降维

降维实际上就是减少数据的自由度,因为在空间中分布的高维数据很多维度其实是相关的(例如身高与体重、身高与父母身高等)。虽然说形式上写成多个维度而且很多时候是非线性关系,但是确实又是相关的,有一些更本质的内容蕴含在其中。

直接把数据中不重要的维度丢掉就行了吧,但是如何找一个很好的映射,以至于保持其分布不会发生改变。我们希望经过这样一个变换,数据的分布不发生改变——高维空间中隔得远的点也还是那么远,因为原始的高维空间数据分布就代表它们有很大的差距。

甚至我们有时不但要降维,反而还要把原始的数据给投影到高维潜空间之中,目的就是把数据的信息分离出来。当然,我们此时需要做到的,就是平衡信息和计算效率。

1.1 MDS 算法(多维缩放)

算法步骤:

  1. 计算距离矩阵 \(D\)

  2. \(D\) 进行变换,得到内积矩阵 \(B\)\(B\) 需满足列和、行和、\(\text{tr}(B)\) 均为零:

去掉常数,即最小化:\(\sum_{i=1}^n z_i^T z_i - 2\sum_{i=1}^n x_i^T W z_i\)

\(z_i = W x_i\),原式化为:

1.4 流形学习

非线性问题主要解决:将高维数据投影到低维平面,所生成的很多路径实际上是"不可达的"。就像是一根螺旋线,投影到地面上就是重叠,但是在三维上仍有信息,但毕竟这根线依然是一维的,我们实际上可以"贴地走",把这种距离信息保留下来。

等度量嵌入(Isomap)

采取**局部欧式假设**:假设样本点周围的几个点是符合欧式距离的,大致处于同一个低维平面之中。

算法步骤:

  1. 计算任意两点 \(x, y\) 的距离:
  2. 计算 \(x\)\(k\) 邻域
  3. 邻域内的点按欧式距离计算
  4. 邻域外的两点通过最短路径计算(使用 Dijkstra 算法)—— 这是一种"测地线"的度量

  5. 使用 MDS 算法,压缩维度后保持这种距离性质

局部线性嵌入(LLE)

假设数据被前 \(k\) 个数据线性表示,即需要得到一组权重:

转化为:\(\min \text{tr}(Z^T M Z)\),其中 \(M = (I - W^T)(I - W)\)

1.5 度量学习

降维的目的是正确认识数据,用更简单的方法衡量之间的关系。这实际上就是要靠**度量**。

k-近邻算法(KNN)

假设数据仅仅与周围的 \(k\) 个数据点有关。给定训练数据集,对于新加入的点,找出离它最近的 \(K\) 个元素,哪个类别多就选哪个。

两个关键: 1. 如何衡量"远近" —— 选取度量 2. \(k\) 的大小 —— \(k\) 越大,误差越大,方差相对减小;\(k\) 越小,模型越"复杂",越容易捕获复杂边界

近邻成分分析(NCA)

兼听则明,不均等听取少数人的建议:

目标:\(\arg\min_M 1 - \sum_{i=1}^n \sum_{j \in \Omega_i} p_{ij}\)

即适当选取度量:\(\|x\|_M = \sqrt{x^T M x}\)


二、特征筛选

特征筛选分为两种: 1. 一个个把重要的特征挑出来 2. 一个个把不重要的特征筛掉

这是一种贪心的策略,因为 \(n\) 个数据中找最优的 \(k\) 个是 NP-hard 操作。

信息增益

几乎任何问题都可以塞入一个 \(L_1\) 正则项,但问题会变得难解很多。

近端梯度下降(Proximal Gradient Descent)

  1. 考虑光滑项的极小化:\(z_t = w_t - \eta \nabla f(w_t)\)

  2. \(w\) 的领域内选取极小化:

其中: - \(B \in \mathbb{R}^{d \times k}\) 是字典矩阵 - 每个 \(n\) 维向量 \(x_i\)\(B\)\(k\) 个字符线性组合而成 - 每个元素只由少数几个元素稀疏表示

这是一个复合优化问题: 1. 固定字典 \(B\),为每个样本找到合适的 \(\alpha_i\) 2. 固定 \(\alpha_i\),依次更新每一列的字典 \(b_i\)

使用 KSVD 保证稀疏性不会被破坏。


总结

方法 核心思想 适用场景
MDS 保持距离结构 距离已知
PCA 最大方差投影 线性降维
核 PCA 非线性映射 非线性结构
Isomap 测地线距离 流形结构
LLE 局部线性表示 局部线性流形
度量学习 学习距离度量 分类任务
L1 正则化 稀疏约束 特征选择
字典学习 稀疏表示 信号处理

归档时间:2026-03-09
来源:知乎文章
分类:数据科学 / 机器学习 / 降维与特征选择