为什么特征维度远大于样本量会导致过拟合?
维度灾难
当特征维度远大于样本量时,会出现所谓的"维度灾难"(curse of dimensionality)。在高维空间中,数据变得非常稀疏,模型有太多的"自由度"来拟合这些稀疏的数据点。
举个简单的例子:
想象你只有2个点,要用一条直线拟合 -> 永远能完美拟合
如果有3个点,用一条二次曲线 -> 也能完美拟合
如果有n个点,用n-1次多项式 -> 同样能完美拟合
在我的案例中:
特征维度是402,意味着模型有402个参数可以调整
而只有160个样本来约束这些参数
这就给了模型太多的"自由度"来记忆训练数据的细节,包括噪声
过拟合的数学解释
在线性回归中,当特征数量p大于样本量n时:
方程组 X β = y Xβ = y Xβ=y 变成欠定方程组
意味着存在无穷多个解能够使训练误差为零
模型会找到一个使训练误差最小的解,但这个解往往过度拟合了训练数据中的噪声
解决方案:
降维:如PCA,将402维降到比如20-30维
正则化:如L1、L2正则化,限制模型参数的大小
特征选择:选择最重要的频率点
增加训练样本:如果可能的话收集更多数据
一个经验法则是:样本量应该至少是特征维度的5-10倍,才能较好地训练模型。