我应该交叉验证未优化的指标吗?

机器算法验证 交叉验证 模型比较
2022-03-31 02:58:47

我想比较两个模型。假设我在同一数据上有两个目标函数,它们都以我感兴趣的方式评估模型性能(是模型参数,是我的数据)。 f(X,y,θ)g(X,y,θ)θXy

不过,我没有使用多目标优化算法,而是仅针对优化我的两个模型的参数,因为我可以轻松地优化它。f(X,y)

但是,我还想使用第二个目标函数比较模型性能。我是否需要使用验证来获得对模型性能的公正估计和/或能够将我的模型与该指标进行比较?在这些案例中是否有标准实践或探索过这一点的工作?g

2个回答

引导或交叉验证(例如,100 次重复 10 倍交叉验证)未优化的索引是个好主意。例如,我建议根据对数似然、惩罚对数似然或贝叶斯模型对数似然 + 对数先验等黄金标准进行优化。您可以报告诸如伪之类的度量,它们只是黄金标准目标函数的转换,此外还可以对有用的索引(例如R2c- 指数(一致性概率 = AUROC)、Brier 分数,最重要的是完整的校准曲线。我在使用概率模型时通过引导 99 个预测值来验证平滑的非参数校准曲线,即验证预测概率为 0.01、0.02、...、0.99 的绝对准确度。同样,您可以显示 Brier 分数、校准斜率、均方误差和许多其他量的过拟合校正估计值。详细信息在我的RMS 书籍和课程笔记中。

无论如何,您都需要对优化模型的性能进行验证(验证)。无论您为此采用何种测试方案(重采样/[外部] 交叉验证/[外部] 引导外、单训练/测试拆分、验证研究),您都可以在此处评估所有感兴趣参数的性能,即fg

一个轻微的例外是不是从测试用例而是从模型本身计算的参数(例如,某种模型复杂性的度量)。这些当然是直接为最终模型计算的(在您的情况下:每个算法的最终模型)。尽管如此,我也会为自举或交叉验证代理模型计算它们,以检查它们是否稳定并且在代理模型和最终模型之间是否可能不同。


此外,研究优化一起演变可能很有趣/很重要,因此在的优化中的 [inner] 交叉验证期间也可能值得计算(也就是说,如果该计算是可行的)。gfgf