# Ml Dimensionality

> 高维数据困境的决策框架。当"特征数远大于样本数(p≫n)""kNN忽好忽坏""该降维还是 特征选择""PCA效果差"时调用：先诊断维数灾难症状，再在降维(PCA/核化/流形)、特征选择 (过滤/包裹/嵌入L1)、度量学习、稀疏恢复四主线按几何形态选路；含序关系判据。不适用于： 换距离度量即可的小问题、类别不平衡、纯模型选择。trigger: curse of dimensionality, 维数灾难, PCA, Isomap, feature selection, 特征选择, L1 sparse, p larger than n, 高维小样本, matrix completion, 矩阵补全。

- Skill: `fieldlu/ml-dimensionality` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-dimensionality`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-dimensionality/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-dimensionality

---


# 高维数据的降维/特征选择决策框架

## R — 原文 (Reading)

> "在高维情形下出现的数据样本稀疏、距离计算困难等问题，是所有机器学习方法共同面临的
> 严重障碍，被称为'维数灾难'(curse of dimensionality)。缓解维数灾难的一个重要途径
> 是降维(dimension reduction)。"
>
> — 周志华《机器学习》第10章10.1-10.2节

> "L1 范数和 L2 范数正则化都有助于降低过拟合风险，但前者还会带来一个额外的好处：
> 它比后者更易于获得'稀疏'(sparse)解……基于 L1 正则化的学习方法就是一种嵌入式特征
> 选择方法，其特征选择过程与学习器训练过程融为一体，同时完成。"
>
> — 周志华《机器学习》第11章11.4节

---

## I — 方法论骨架 (Interpretation)

高维不是"特征太多"一个数字问题，而是**有效自由度可能远低于表观维度**的结构问题——数据往往暗藏一个低维嵌入。整个决策框架是一条诊断链：

1. **先诊断症状**：最近邻与最远邻的距离比值趋近 1（距离集中）、样本密度骤降——命中即宣告 kNN 类方法失效，别再调参硬扛。
2. **再问本质维度在哪**：任务相关的信息若集中在少数方向→线性路线（PCA：既可理解为"最大可分投影"也可理解为"最小重构误差"，两种相反直觉推出同一方法是根基稳固的信号）；若沿弯曲流形分布→流形路线（Isomap 用测地线代替直线距离，警惕噪声桥接造成短路）；若全局结构光滑但非线性→核化（KPCA）。
3. **特征选择是另一条腿**：过滤法快而粗糙，包裹法准而昂贵，嵌入式（L1）把选择并入训练。注意贪心搜索注定局部最优，LVW 型随机搜索在限时下可能无解。
4. **高维小样本必正则化**：p≫n 时普通最小二乘秩亏、闭式解失效、系数爆炸——正则项不是可选项。L1 的菱形等值线让解落在坐标轴上从而自动完成特征选择。
5. **两处视角升级**：(a) 与其找空间不如直接学距离——度量学习把反复手调的相似度权重参数化为马氏矩阵端到端学；(b) 信息不全的任务先找"稀疏域"再谈恢复——压缩感知/矩阵补全证明欠定方程因稀疏先验起死回生。

---

## A1 — 书中的应用 (Past Application)

### 案例 1: 虫子爬 S 形曲面 — 测地线动机 (c28)
- **问题**: 一只虫子在 S 形曲面上爬行，曲面上的两点间"本真距离"是什么？
- **方法论的使用**: 作者指出欧氏直线距离是"抄近路"穿过三维空间，不是虫子贴面爬行的测地线；流形学习的做法是用近邻图上的最短路近似测地线，再在低维还原。
- **结论**: 数据沿弯曲流形分布时线性 PCA 会破坏拓扑，需走流形路线；且要警惕噪声点桥接环两侧造成"短路"。
- **结果**: 该类比成为 Isomap 动机的标准传播载体，也构成"线性不行→全局核化还是局部流形"分流点的直觉基础。

### 案例 2: L1 vs L2 等值线图解 (c29)
- **问题**: 为什么 L1 比 L2 更容易产生稀疏解？
- **方法论的使用**: 作者用等值线图说明：L1 的菱形约束边界有尖角，与损失等值线的交点容易落在坐标轴上（分量恰为 0）；L2 的圆滑边界交点多在象限内（稠密收缩）。
- **结论**: 求解过程本身就是特征选择；但也暗示 L1 不总产稀疏解，不能当口诀用。
- **结果**: 该图解成为"想要自动特征选择选哪种罚"的标准回答。

### 案例 3: 网上书店评分矩阵补全 (c30)
- **问题**: 用户只对极少数书评过分，《笑傲江湖》的评分能否被恢复？
- **方法论的使用**: 作者引入压缩感知视角：评分由少数题材因素驱动 → 矩阵低秩稀疏 → 只需 O(mr·log²m) 个观测即可完美恢复。
- **结论**: 恢复可行性取决于真实稀疏度（背后自由度）而非填答率本身。
- **结果**: 该案例把"从部分恢复全体"抽象成可迁移模板：问卷填补、推荐系统、传感器缺失都先问"信号在哪个域稀疏"。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. n=200、p=20000 的基因/文本数据，不知道第一步该降维、选特征还是直接上带正则的模型。
2. kNN 或聚类在 d=5000 的数据上表现忽好忽坏，怀疑距离出了问题。
3. PCA 降出来的主成分解释不了业务含义，或 95% 方差阈值定的维数总显得太大。
4. 数据沿环形/S 形等弯曲结构分布，PCA 压成一团乱麻。
5. 推荐系统/问卷有大量缺失值，想判断能否补全以及怎么补。
6. 把颜色、星期几这类无序/循环属性 label_encode 成整数喂给模型，指标反而变差。

### 语言信号 (用户的话里出现这些就应激活)

- "curse of dimensionality / 维数灾难 / 高维小样本 / p much larger than n"
- "PCA 之后效果变差 / 主成分看不懂 / 该保留几个成分？"
- "feature selection 怎么做 / 特征太多想删一些"
- "Isomap / LLE / t-SNE 和 PCA 有什么区别该用哪个"
- "评分矩阵缺很多能不能补全 / matrix completion"

### 与相邻 skill 的区分（定稿口径）

- 与 `ml-diagnosis` 的区别（depends-on 单向）: 高维小样本下的"训练精度 100%/R²=0.95"是过拟合红旗（x43/x15），其归因（方差主导、秩亏）由 diagnosis 的偏差-方差框架给出；本 skill 接手之后的降维/特征选择/正则化处置。先确认红旗性质，再走结构路线。
- 与 `ml-pitfall-audit` 的区别：审计 skill 问"完美表现是不是信息泄露"(x43/x15 高维小样本红旗)；本 skill 在确认问题真实后给出完整的降维/选特征执行路径。
- 与 `ml-theory-compass` 的区别：理论罗盘讲 PCA 双视角背后的认识论（两种直觉汇聚=根基稳固）；本 skill 是工程落地版，输出具体技术选型。
- 与 `ml-imbalanced-learning` 的区别：那是类别比例失衡的判决失真；本 skill 管高维结构问题——两者症状都可能是"指标不对劲"，按信号分岔。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **症状体检**
   - 完成标准: 报告两个可观测信号——(a) 最近邻/最远邻距离比值是否趋近 1；(b) 样本量与维数的比值。任一命中即确认维数灾难，进入下一步；均未命中则此 skill 不适用。

2. **属性类型审查**
   - 完成标准: 列出各特征的类型——有序属性连续化、无序属性 one-hot（禁止 label_encode 制造伪序）、循环属性 sin/cos 双编码；距离计算场景无序属性改 VDM。
   - 判停条件: 若发现伪序污染是当前主要问题源，修复后先复测再决定是否继续降维流程。

3. **选主线**
   - 完成标准: 给出明确选路与依据——目标是预测性能且要可解释的特征子集→特征选择三式之一（预算紧选过滤、标注贵选嵌入式 L1）；目标是可视化/去噪/压缩→降维（线性结构 PCA、弯曲流形 Isomap/LLE、全局光滑非线性 KPCA）；p≫n 回归→默认加罚（需稀疏选 L1）。声明所选路线的已知局限（贪心搜索局部最优、包裹法开销、LVW 可能无解）。

4. **定维数并验证**
   - 完成标准: 维数不用单一阈值拍板——报告碎石图肘部或以下游小学习器交叉验证效果定 d′；同时检查删掉的特征里有没有"中间概念"型冗余特征（如"底面积"之于"体积"），有则保留。

5. **输出残留风险声明**
   - 完成标准: 注明——流形方法的短路/断路风险、L1 不总产稀疏解、度量学习需要约束标注成本。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 维度适中（几十以内）且模型表现正常——降维纯属浪费信息。
- 主要矛盾是类别不平衡或评估设计——那是其他 skill 的辖区，混着治会掩盖真因。
- 业务方明确要求保留全部原始特征的合规场景（如信贷风控监管要求）——此时只能做正则化不能删列。

### 作者在书中警告的失败模式

- **kNN 高维失效 (x38)**: 近邻与远邻距离趋同，"近邻"概念崩塌——先降维再谈 k 值。
- **特征选择两坑 (x40)**: 丢掉弱边际相关但强交互的特征会封死后续上限；删"冗余"特征可能删掉了中间概念反而坏事。
- **贪心宿命 (x41)**: 前向/后向/双向搜索都躲不开局部最优——两套流程给出交集很小的子集时，比稳定性而非信单次结果。
- **LVW 无解 (x42)**: 拉斯维加斯框架限时下可能永远给不出合格解——deadline 场景必须设计蒙特卡洛兜底。
- **高维小样本裸跑必翻车 (x43, 含 x15)**: X^T X 不满秩→闭式解失效、解凭实现细节随机、系数量级巨大符号不稳；R²=0.95 是过拟合红旗而非捷报。
- **距离误用 (x37)**: 对无序属性硬算闵氏距离制造伪几何；"相似度"可以有意违反直递性服务语义（人马非度量距离 c26）。
- **伪序陷阱 (x14)**: 无序属性连续化引入虚假序关系，聚类/回归学到伪结构——one-hot 或 VDM 修复。

### 作者的盲点 / 时代局限

- 未覆盖深度时代的表示学习默认答案（autoencoder、预训练 embedding 已在很多场景替代手工降维）；t-SNE/UMAP 等可视化工具书中缺席。
- 流形学习部分未讨论其在高噪声真实数据上普遍脆弱的后续实证。

### 容易混淆的邻近方法论

- **降维 vs 特征选择**: 降维造新特征（不可读），特征选择挑原特征（可读、可合规审计）——按"要不要可解释性"先分岔再进本框架。
- **PCA 双视角**: "最近重构"与"最大可分"两条推导等价，但实操定维数时对应不同工具（重构误差肘部 vs 方差贡献率）——混用会导致维数确定逻辑不自洽。

---

## 相关 skills

- depends-on: ml-diagnosis（高维小样本红旗的偏差-方差归因在前；本 skill 出结构处置方案）
- contrasts-with: ml-theory-compass（f32 PCA 双视角的认识论面 vs 工程执行面）, ml-pitfall-audit（问 6 泄露审查 vs 确认后的降维执行）
- composes-with: ml-bayesian-thinking（生成式假设同样受维数灾难制约；正则化/稀疏与结构风险同源——L1 偏好稀疏即奥卡姆偏好的可计算版）

---

## 审计信息

- **验证通过**: V1 ✓ / V2 ✓ / V3 ✓
- **素材单元**: f13, f30, f31, f32, f33, f34, f36, f37 / c28, c29, c30, c26 / x38, x40, x41, x42, x43, x37, x14
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

