训练和测试误差比较如何指示过度拟合?

机器算法验证 交叉验证 过拟合
2022-03-16 07:25:12

在我的研究小组中,我们正在讨论是否可以仅通过比较两个错误来判断模型是否存在过度拟合,而无需了解更多关于实验的信息。

ps:我个人对非冗余(即没有重复或非常相似的实例)小型数据集(例如 100 个实例)以及具有很少或没有要调整的参数的分类器(例如决策树)感兴趣(这就是我没有任何验证的原因完全要提的错误)

我曾在一些反对这种可能性的论据中认为,

  • 与测试集上的随机误差(换句话说,多数类的误差)进行比较似乎会提供更多信息
  • 根据数据的复杂性和噪声水平,过拟合趋势可能会增加或减弱
  • 根据分类器,数据可以完美匹配其表示偏差(线性可分离问题与线性回归),或者相反,每个实例都可以完全匹配分类器(k-NN,k=1)
  • 集成可以达到 100% 的训练准确率而不影响测试准确率;请参阅第 82 页上的这个明显的悖论:链接

我的结果之一,例如留一法(LOO)(10x10 倍类似)。标准偏差列可以忽略,因为它是 LOO:

classifier train accuracy/std dev test acc./std dev 1. random forest w/ 1000 trees : 1.000/0.000 0.479/0.502 2. k-NN k=5 neighbors : 0.613/0.019 0.479/0.501 3. C4.5 w/ 5 trees : 0.732/0.018 0.500/0.503 4. Random guessing : 0.372/0.005 0.372/0.486

Histogram of classes: 35 <- A 28 <- B 19 <- C 6 <- D 6 <- E

测试集中随机森林预测类别的直方图: 43 <- A 32 <- B 18 <- C 1 <- D 0 <- E

1个回答

过度拟合并不是指训练和测试误差之间的差距很大甚至增加。训练和测试误差都在减少可能是真的,但训练误差正在以更快的速度减少。

随着模型超参数的调整(例如最大树深度、最大节点、每次分割的最小样本和简单决策树的每个节点的最小样本),过度拟合特别涉及以牺牲模型泛化(通过交叉验证近似)为代价减少训练误差.

来自维基百科: 维基百科示例

随着特定超参数的更改,基于树的方法通常使训练误差以比测试误差更快的速度下降。如果您没有为特定模型测试不同的超参数,则无法识别过度拟合。也许选择的超参数的特定组合是最好的,任何其他组合都会导致交叉验证的测试错误增加。