eri*_*ric 12 statistics matlab classification machine-learning roc
我正在构建接收器操作特性(ROC)曲线,以使用曲线下面积(AUC)评估分类器(更多详细信息,在帖子末尾).不幸的是,曲线上的点通常低于对角线.例如,我最终得到的图形看起来像这里的图形(蓝色的ROC曲线,灰色的标识线):

第三点(0.3,0.2)低于对角线.要计算AUC,我想修复这些顽抗点.
对于曲线上的点(fp,tp),执行此操作的标准方法是将其替换为点(1-fp,1-tp),这相当于交换分类器的预测.例如,在我们的例子中,我们麻烦的点A(0.3,0.2)变为B点(0.7,0.8),我在上面链接的图像中用红色表示.
就我的参考资料来说,这与处理这个问题有关.问题是,如果将新点添加到新的ROC中(并删除坏点),最终会得到如图所示的非单调ROC曲线(红色是新的ROC曲线,蓝色虚线是旧的):

在这里,我被卡住了.如何修复此ROC曲线?
我是否需要重新运行我的分类器与数据或类以某种方式转换为考虑到这种奇怪的行为?我查看了一篇相关的论文,但如果我没有弄错的话,它似乎正在解决一个与此不同的问题.
根据一些细节:我仍然拥有所有原始阈值,fp值和tp值(以及每个数据点的原始分类器的输出,输出只是从0到1的标量,这是一个概率估计班级成员).我在matlab中以perfcurve函数开始这样做.
请注意,根据撰写上述文章的人发来的一些非常有用的电子邮件以及上面的讨论,正确的答案似乎是:不要尝试“修复”ROC 曲线中的各个点,除非您构建一个全新的分类器,然后一定要留下一些测试数据,看看这是否是合理的做法。
获得低于恒等线的点是很容易发生的事情。这就像让一个单独的分类器的正确率达到 45%,尽管最佳理论最小值是 50%。这只是真实数据集变化的一部分,除非它明显低于基于偶然的预期,否则您不应该太担心。例如,如果您的分类器正确率为 20%,那么显然存在问题,您可能会调查具体原因并修复您的分类器。
| 归档时间: |
|
| 查看次数: |
5307 次 |
| 最近记录: |