共计 1063 个字符,预计需要花费 3 分钟才能阅读完成。
核心概念解析
维数灾难和过拟合是机器学习中两个紧密相关但不同的概念。维数灾难指的是随着特征维度增加,数据变得稀疏,导致模型难以学习有效模式;而过拟合是模型在训练数据上表现很好,但在测试数据上表现差的现象。

- 维数灾难确实可能导致过拟合,但不是唯一原因(选项 a 错误)
- 降维通过减少特征数量来缓解数据稀疏性,从而可能改善模型性能(选项 b 正确)
- 降维适用于过拟合情况(选项 c 正确),但对欠拟合问题通常无效甚至有害(选项 d 错误)
算法横向对比
PCA(主成分分析)
- 线性降维方法,通过特征值分解找到最大方差方向
- 时间复杂度:O(n³)(需要计算协方差矩阵)
- 优点:计算高效,保留全局结构
LDA(线性判别分析)
- 监督学习方法,最大化类间差异
- 时间复杂度:O(n³)
- 优点:对分类任务特别有效
t-SNE(t 分布随机邻域嵌入)
- 非线性降维,保留局部结构
- 时间复杂度:O(n²)
- 优点:可视化效果好,适合高维数据探索
实战代码演示
数据预处理与降维
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# 标准化数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# PCA 降维
pca = PCA(n_components=0.95) # 保留 95% 方差
X_pca = pca.fit_transform(X_scaled)
学习曲线诊断
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
train_sizes, train_scores, test_scores = learning_curve(estimator, X, y, cv=5)
plt.plot(train_sizes, np.mean(train_scores, axis=1), label='Training score')
plt.plot(train_sizes, np.mean(test_scores, axis=1), label='Cross-validation score')
plt.legend()
生产环境注意事项
- 高维稀疏数据陷阱
- 检查特征间相关性
-
避免在 PCA 前使用 MinMaxScaler
-
信息损失评估
- 计算重构误差
- 使用累计解释方差比
思考题
当降维后模型性能下降时,建议检查:
1. 降维是否丢失了关键特征
2. 是否选择了错误的降维方法
3. 超参数设置是否合理
4. 数据预处理步骤是否正确
正文完
发表至: 未分类
近一天内
