测试误差低于训练误差

3

希望您能对此提供意见。我正在使用遗传编程构建回归模型。

如果在数据比例为1:5的情况下,测试数据的RMSE比训练数据的RMSE(明显)低,我应该担心吗?

测试数据是从24个数据点中随机选择而来,并且没有替换。该模型是使用遗传编程技术构建的,因此特征数量、建模框架等会随着最小化GP树中节点数量的训练RMSE而变化。

这个模型是欠拟合的吗?或者我应该最小化MSE而不是RMSE(我认为如果优化器足够好,则MSE是正的,MSE的最小值将与RMSE的最小值重合)?

谢谢

1个回答

1

所以你的模型是在24个数据点中训练了20个,然后在剩下的4个数据点上进行了测试?

对我来说,这听起来像是你需要(更多)数据,以便你可以拥有更大的训练集和测试集。我对你的测试集表现不佳并不感到惊讶,因为似乎你的模型无法从如此少的数据中学习。机器学习的经验法则是,永远不能有足够的数据。有没有可能收集更大的数据集呢?


你是对的,怀疑无法收集更大的数据集。测试集上的表现实际上非常好 >.<,比训练集要好得多。我尝试做了6倍交叉验证。平均测试误差仍然非常低(RMSE)。在MAPE方面,测试性能也非常好(小于2%)。训练误差较大,可能会比RMSE和MAPE高出三个数量级以上! - oalah
啊,我看错了,我以为你的测试表现不佳。这确实是一个有趣的情况。你的训练数据表现是整个训练期间的平均值还是仅在模型完成学习后测量的表现? - Sicco
嗨Sicco,培训性能是指模型学习完成后的表现。 - oalah
那么,我很困惑:D。我倾向于说有些事情出了问题。要么测试结果纯属巧合(您尝试过多次测试和不同的训练/测试数据比例吗?),要么我猜测实现可能出了问题。在测试集上获得比训练集更好的结果是不应该发生的:D。 - Sicco
我已经进行了多次测试并尝试不同的比例进行再次核对。在多次测试中,均方根误差(RMSE)和平均绝对百分比误差(MAPE)的行为大约有90%是如所描述的。在不同的比例下,例如50-50,训练误差通常会比测试误差更低。我也感到困惑并怀疑有些地方可能存在问题 =) - oalah
1
终于找到了问题所在。测试中有些地方不太对劲 =)。我使用线性最小二乘法在测试数据本身上计算了集成的权重 >.<。现在这个东西表现得像预期的那样。 - oalah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接