如何在多类分类中绘制 ROC 曲线?

机器算法验证 分类
2022-01-23 22:36:57

换句话说,我处理的是 4 个类而不是两个类问题,并且仍然想使用 AUC 评估性能。

4个回答

看来您正在寻找多类 ROC 分析,这是ICML'04教程中介绍的一种多目标优化。就像在几个多类问题中,想法一般是进行成对比较(一个类与所有其他类,一个类与另一类,参见(1)或统计学习要素),最近有一个Landgrebe 和 Duin 关于该主题的论文,通过成对分析近似多类 ROC,模式识别快报 2007 28:1747-1758。现在,出于可视化目的,我前段时间看过一些论文,其中大多数是在 ROC 曲面(VUS) 或蛛网图下翻转体积。

但是,我不知道是否存在这些方法的 R 实现,尽管我认为该stars()函数可能用于蜘蛛网图。我刚刚遇到了一个似乎提供多类 ROC 分析的 Matlab 工具箱PRSD Studio

其他可能对可视化/计算有用的论文:

参考文献:
1. Allwein, EL, Schapire, RE 和 Singer, Y. (2000)。将多类减少为二进制:边距分类器的统一方法。机器学习研究杂志1:113–141。

我最近在 R 中发现了这个pROC 包,它使用Hand and Till (2001)指定的技术绘制了一个多类 ROC您可以使用 multiclass.roc 函数。

这里的答案非常完整,但我仍然想添加我的 5 美分。在这个问题中,您可以找到使用 One-Vs-All 方法和ROCR R 库生成 ROC 曲线的 R 代码示例。

这是该答案的情节:

ROC曲线

您需要指定您的分类器作为一对一休息,然后您可以绘制单独的 ROC 曲线。有一个方便的库可以在没有太多工作的情况下在 python 中完成,称为yellowbrick.

查看带有最小可重现示例的文档。

结果看起来像这样(来源

在此处输入图像描述