gpt4 book ai didi

matlab - 如何用对角线以下的点修复 ROC 曲线?

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:10 26 4
gpt4 key购买 nike

我正在构建接受者操作特征 (ROC) 曲线,以使用曲线下面积 (AUC) 来评估分类器(在帖子末尾有更多详细信息)。不幸的是,曲线上的点通常位于对角线下方。例如,我最终得到的图表看起来像这里的图表(蓝色的 ROC 曲线,灰色的标识线):

bad_roc

第三个点 (0.3, 0.2) 位于对角线下方。为了计算 AUC,我想修复这些顽固点。

标准的做法是,对于曲线上的点 (fp, tp),将其替换为点 (1-fp, 1-tp),这相当于交换分类器的预测。例如,在我们的示例中,我们的麻烦点 A (0.3, 0.2) 变成了点 B (0.7, 0.8),我在上面链接的图像中用红色标出了。

这大约是 my references去处理这个问题。问题是,如果将新点添加到新 ROC 中(并删除坏点),最终会得到如图所示的非单调 ROC 曲线(红色是新 ROC 曲线,蓝色虚线是旧曲线):

fixed_roc

我卡在这里了。我该如何修正这条 ROC 曲线?

我是否需要重新运行我的分类器,以某种方式转换数据或类以考虑到这种奇怪的行为?我看过一个relevant paper ,但如果我没记错的话,它似乎解决的问题与此略有不同。

在一些细节方面:我仍然拥有所有原始阈值、fp 值和 tp 值(以及每个数据点的原始分类器的输出,输出只是一个从 0 到 1 的标量,即类成员的概率估计)。我在 Matlab 中从 perfcurve 函数开始执行此操作。


最佳答案

请注意,根据撰写上述文章的人发送的一些非常有用的电子邮件以及上面的讨论,正确的答案似乎是:不要尝试“修复”ROC 曲线中的各个点,除非您构建一个全新的分类器,然后一定要省去一些测试数据,看看这样做是否合理。

得分低于身份线是很容易发生的事情。这就像获得 45% 正确率的单个分类器,即使最佳理论最小值是 50%。这只是真实数据集可变性的一部分,除非它明显低于基于偶然性的预期,否则您不必太担心。例如,如果您的分类器正确率为 20%,那么显然有些地方不对劲,您可能会调查具体原因并修复您的分类器。

关于matlab - 如何用对角线以下的点修复 ROC 曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com