测试数据的 MAE 是否总是高于训练数据的 MAE?

数据挖掘 决策树 交叉验证 过拟合
2022-02-13 19:47:50

Kaggle 课程页面上,下图显示测试数据的 MAE 始终高于训练数据的 MAE。为什么会这样?它是否仅限于 DecisionTreeRegressor 模型?或者图表是错误的,实际上测试的 MAE 可能低于训练的 MAE?

在此处输入图像描述

3个回答

训练 MAE“通常”低于测试 MAE,但并非总是如此。

现在来回答你的问题。

Q1 为什么会这样?

A1。训练 MAE 通常低于测试 MAE,因为模型在训练期间已经看到了训练集。所以更容易在训练集上获得高准确率。另一方面,测试集是看不见的,所以我们通常期望测试 MAE 更高,因为它更难以在看不见的数据上表现良好。

但是,训练 MAE 并不总是必须低于测试 MAE。可能会“偶然”发生,测试集(比训练集)相对更容易让模型获得更高的准确度,从而导致更低的测试 MAE!

Q2。这仅适用于 DecisionTreeRegressor 吗?

A2。不,此图并非特定于 DecisionTreeRegressor。如果您注意到在我的解释中我没有对模型做出任何假设!

Q3。图表不正确吗?

A3。不,图表没有错。我们谈论的是我们平均预期的一般情况。如果您只为正在运行的模型的特定/当前实例绘制图表,您可以在测试 MAE 之上训练 MAE。

在以下情况下,模型的测试 MAE 可能低于训练 MAE:

  1. 当您没有对数据进行采样或完美拆分测试列车数据时,这是可能的。
  2. 当您的测试数据很小并且它不能很好地代表训练数据时,可能会或可能不会出现该测试数据表现良好且错误率低的情况。
  3. 当您使用正则化并且您的训练数据远离过度拟合(即增加训练误差)但在测试数据上泛化良好(即低训练误差)时,可能会出现这种情况。

训练误差通常低于或等于测试误差。由于测试误差是模型的泛化误差,它应该略大于训练误差;但如果训练误差 << 测试误差,则可能是由于数据的方差或模型过拟合。