如何为留一法交叉验证生成 ROC 曲线?

机器算法验证 交叉验证
2022-03-05 02:39:53

当执行 5 折交叉验证(例如)时,通常为 5 折中的每一个计算单独的 ROC 曲线,并且通常使用标准计算平均 ROC 曲线。开发。显示为曲线厚度。

但是,对于 LOO 交叉验证,每个折叠中只有一个测试数据点,为这个单个数据点计算 ROC“曲线”似乎并不明智。

我一直在获取我所有的测试数据点(以及它们单独计算的 p 值)并将它们汇集到一个大集合中以计算单个 ROC 曲线,但这是统计上的犹太洁食吗?

当每个折叠中的数据点数量为 1 时(如 LOO 交叉验证的情况),应用 ROC 分析的正确方法是什么?

1个回答

如果分类器输出概率,则将所有测试点输出组合成一条 ROC 曲线是合适的。如果不是,则以使其在分类器之间直接可比较的方式缩放分类器的输出。例如,假设您正在使用线性判别分析。训练分类器,然后将训练数据通过分类器。学习两个权重:尺度参数(分类器输出的标准差,减去类均值后)和移位参数(第一类的均值)。对每个 LDA 分类输出进行归一化σμrn=(rμ)/σ,然后您可以从归一化输出集创建 ROC 曲线。需要注意的是,您正在估计更多参数,因此与基于单独的测试集构建 ROC 曲线相比,结果可能会略有偏差。

如果无法标准化分类器输出或将其转换为概率,则基于 LOO-CV 的 ROC 分析是不合适的。