机器学习的统计检验

从数据中进行推断、估计和决策

你构建了两个分类器,一个的准确率为 91.0%,另一个为 91.4%。第二个真的更好吗,还是它只是碰巧抽到了一个更幸运的测试集?严谨地回答这个问题就是机器学习的统计检验:将假设检验调整以适应模型比较的种种特殊之处。

最直觉的做法——对每折准确率做一个普通的 t 检验——是有缺陷的,因为交叉验证的各折共享训练数据,从而违反了 t 检验所假定的独立性。这会使检验过于自信,夸大假阳性。有三种更好的工具能够诚实地处理机器学习的场景。

McNemar 检验在同一个测试集上比较两个分类器,只关注它们给出不同预测的那些样本,这正是配对预测所应问的问题。自助法(bootstrap)对测试集进行多次有放回重抽样,直接为准确率构建一个置信区间,无需任何公式。修正的配对 t 检验调整方差以考虑交叉验证各折之间的重叠,消除朴素版本的过度自信。

在机器学习中的应用正是这种严谨性,把一个真实的结果与排行榜上的噪声区分开来。在宣称模型 A 胜过模型 B 之前,先做一次McNemar 检验(同一测试集)或对准确率差距做一个自助法置信区间。一个结果之所以被报告为“91.2% ± 0.4%”而不只是“91.2%”,整个原因就是让读者能够凭肉眼应用恰恰这种检验。
▶ 机器学习的统计检验
← 评估指标生成式 vs 判别式 →