只要「验证集性能」低于「训练集性能」,就应认为模型「过拟合」吗?也等价于「模型搭建失败」吗?

如「验证集性能」的准确率为90.00%;「训练集性能」的准确率为90.10%。这时应认为模型性能差,泛化能力差吗?


当然不能啦。

过拟合可以等验证集性能开始劣化,训练集性能还在上升。对于很多任务验证集性能就是要比训练集差的。


不能认为失败。

这事说起来还有点麻烦:

如果训练集表现已经很差,验证的时候表现更差,那确实是失败,整体失败,可能需要换模型了。

如果训练的时候表现的很好,验证的时候摔了0.1%,不足以说明任何事,因为具体的情况很复杂。

如果使用准确率来评估的话,那么对于某些问题是不公平的,有时候准确率不算太高,有的时候反而是「泛化」能力好。

要多用几个评价标准比较一下,同时有条件的话多换几个数据集合,这都是对于提高模型有帮助的。

欢迎关注「三岁学技术」


过拟合:给定一个假设空间?,一个假设 f 属于?,如果存在其他的假设 f′ 也属于?,使得在训练集上f 的损失比f′ 小,但在整个样本空间上f′ f 的损失小,那么就说该假设 f 过度拟合训练数据(Mitchell T M. Machine learning[M]. McGraw-Hill, 1997.)

过拟合是由于训练样本有限并对真实分布表示不佳,易导致模型训练错误率低而未知数据错误率较高。显然过拟合几乎无法避免,只能减小其程度以减小影响。

可以认为,过拟合越显著则模型泛化能力越弱,反之模型泛化能力越强。

当训练90.1%、验证90%时,过拟合是微弱的、可忽略的,显然无法推出「模型失败」这一结论。当过拟合较轻微时,结论应当是「泛化能力较强」。

此外,不应对模型下二元定论,应该是「已取得一定成果,仍有进一步改进空间……」(滑稽.jpg)。


过拟合一般是训练集的准确度和验证集的准确度相差很大的情况下才叫过拟合。比如训练集98%,验证集不到60%这种。


如果验证集表现要高于训练集 一般来讲才是真的出问题了……赶快看看自己代码有没有写错 是不是有数据泄露了

常规来讲 就应该是在「低于」到「远低于」之间


验证集的表现低于训练集应该是很常见的啊。。。。


建议你先看看周志华老师的西瓜书,理解一下过拟合、欠拟合、泛化能力的概念


推荐阅读:
相关文章