共计 1239 个字符,预计需要花费 4 分钟才能阅读完成。
维数灾难的数学本质
当特征维度 $d$ 增加时,数据在空间中的分布会变得极其稀疏。具体表现为:单位超立方体内样本密度按 $1/n^{1/d}$ 衰减。例如在 $d=100$ 维时,即便有 $10^6$ 个样本,每个特征区间平均仅分配到 $1.05$ 个样本(计算式:$(10^6)^{1/100}\approx1.05$)。这种 样本稀疏性 导致:

- 距离度量失效:所有样本两两距离趋近相同值
- 模型复杂度爆炸:需要指数级样本才能保持统计显著性
- 噪声放大:无关特征干扰模型学习
题目选项深度解析
- 选项 a 辨析
- 错误原因:过拟合是 高模型复杂度 + 低数据量 共同作用结果
-
反例:即使维度低,深度神经网络仍可能过拟合
-
选项 b / c 正确性
-
降维通过以下机制缓解过拟合:
- 消除特征间多重共线性
- 过滤测量噪声(如 PCA 保留主成分)
- 可视化验证:sklearn 示例
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X)
-
选项 d 错误性
- 欠拟合本质是 模型表达能力不足
- 降维会损失信息,加剧欠拟合
- 正确做法:增加特征 / 换用复杂模型
诊断与实战演示
学习曲线诊断
# Python 3.8+, sklearn 1.0.2
import matplotlib.pyplot as plt
from sklearn.model_selection import learning_curve
train_sizes, train_scores, test_scores = learning_curve(estimator=LinearRegression(),
X=X_high_dim,
y=y,
cv=5,
scoring='r2'
)
plt.plot(train_sizes, test_scores.mean(axis=1), label='Validation')
plt.plot(train_sizes, train_scores.mean(axis=1), label='Training')
典型过拟合表现:训练分数 >> 验证分数且差距持续扩大
降维效果对比
| 指标 | PCA(无监督) | LDA(有监督) |
|---|---|---|
| 方差保留率 | 95% | 依赖类别分离度 |
| 计算效率 | O(n^3) | O(n^2) |
| 适用场景 | 特征去噪 | 分类任务优化 |
最佳实践指南
- 技术选型决策树
- 特征选择(Filter/Wrapper)当:
- 需要保持特征物理意义
- 存在明显无关特征(如方差阈值)
-
特征提取(PCA 等)当:
- 特征间高度相关
- 可视化需求强烈
-
可视化工具链
- UMAP:适合高维流形结构(需安装 umap-learn)
- t-SNE:保留局部结构,但计算较慢
- 交互工具:Plotly Express 的 3D 散点图
进阶思考
当 $d \gg n$ 时(如基因数据):
– 降维可能过度压缩信息
– L1 正则化(LASSO)能:
– 自动特征选择
– 保持可解释性
– 数学上等价于凸优化问题:
$$\min_\beta |y-X\beta|_2^2 + \lambda|\beta|_1$$
关键权衡:信息损失 vs 模型稳定性,需通过交叉验证确定最优策略。
正文完
发表至: 未分类
近两天内
