我正在参加一项挑战,我在其中创建了一个模型,该模型在训练集上执行70% AUC ,在保留测试集上执行 70% AUC。
另一位参与者创建了一个模型,该模型在训练集上执行96% AUC,在保留测试集上执行76% AUC。
在我看来,我的模型更好,因为它在保留集上的表现相同。
问:是否可以说他在一个测试集上的 76% 只是一个巧合,而在另一个保留测试集上,他的模型可能表现更差?
在测试样本上具有更高 AUC 的过度拟合模型是否优于未过度拟合的模型
机器算法验证
验证
过拟合
模型比较
奥克
火车
2022-03-29 09:18:25
3个回答
这将取决于您的训练和测试集是如何组成的。
如果测试集相当大并且正确地反映了“应用案例”数据的多样性,我不会这样争论。但是如果测试数据比较小,你当然可以偶然获得一些好的或坏的结果。在这种情况下使用更多的测试数据会有所帮助(或者使用可用的总数据的更大部分 - 如果可能的话)。
此外,应该使用一些内部划分(例如重复交叉验证)来获得训练结果,这些划分是对模型以前未见过的数据进行测试。这些结果中的性能和性能向您展示了您的模型通常如何执行,以及获得更好或更差结果的可能性有多大。使用这样的程序,我不会认为任何比你的简历结果更好的测试结果是现实的。您可能还应该查看并比较两种模型的 CV 性能和性能分布。
并且:请记住,如果您的训练数据与测试数据相比相当小,那么您的训练结果可能仍然明显优于测试结果和实际应用案例结果。
如果只关注预测准确性,那么过拟合模型很可能会更好。以随机森林为例:在训练数据集上,通过构造,它极度过拟合。尽管如此,测试数据集的结果通常还是相当合理的(并且测试性能接近于规定的袋外性能)。
这只有在测试数据集反映“真实案例”并且基础模型的假设得到合理满足时才有效。
也很有可能(在某些情况下)在测试集上过度拟合。正确拟合的模型应该在训练和测试数据集上实现大致相似的交叉验证性能。最佳实践是还保留仅使用一次的数据集的另一部分:评估模型在它根本没有见过的数据上的性能。
如果您正在使用测试集迭代地构建模型,例如添加一个特征然后查看它如何在测试集上进行验证,那么您将提供有关测试集的模型信息。具体来说,如果您根据模型的测试集性能调整模型,那么您在测试集上的结果会偏向更高(也就是说,您过度拟合)。