如何验证预测性能改进是否显着更好?

机器算法验证 预测模型 模型评估
2022-03-28 08:48:43

我有一个模型在测试数据集中M1实现了预测分数(准确度/AUC/F1 ...) 。s1

我开发了一个新模型,该模型在同一测试集上M2实现了预测分数。s2假设s2 > s1.

是否有任何测试可以确认它M2实际上优于M1,或者它只是模型中随机性的结果?

2个回答

我想到了几种可能性。

如果您有多个数据集,则可以使用 Diebold-Mariano 测试。标签 wiki包含信息,以及指向原始出版物和后续出版物的指针。DM 测试在时间序列预测社区中非常普遍,但没有什么特别的“时间序列”。

如果您只有一个数据集,那么您原则上可以引导您的模型适合这两个模型,并评估一个模型在(例如)95% 的情况下是否比另一个模型有所改进。

如果您在每个复制中的相同测试集上执行此操作(仅引导训练数据),那么您可以得出的结论是一个模型在这个特定测试集上是否更好,所以我要做的最低限度就是包装练习在交叉验证步骤中。即便如此,在单个数据集上应用这种机制很容易让你非常确信过度拟合模型比实际更好。

Dietterich (1998)提出 5x2 交叉验证,然后进行 t 检验以识别更好的模型。在比较多个数据集的模型时,Demsar (2006)建议在比较两个模型时使用 Wilcoxon Signed Rank 检验,在比较两个以上模型时使用 Friedman 检验。