如何从分类的 ROC 曲线计算 AUC?

数据挖掘 机器学习 分类
2021-09-16 12:29:52

基于 TPR 和 FPR,我为我的二元分类模型生成了 ROC 曲线。我不知道,如何计算 AUC 值。如果你能帮我计算 AUC 值,我会对我很有帮助。

1个回答

欢迎来到社区!

如您所知,AUC 只是 ROC 曲线下的面积。所以问题更多是关于数值方法,因为你有一组点,你想计算它下面的面积。

黎曼和

微不足道的解决方案。只需从您拥有的点制作矩形。每个矩形的面积只是边的乘积。然后总结它们!你大概不喜欢吧?!

梯形法

在黎曼之后,最简单和最天真的算法可以做到这一点。您只需有一组点,您只需计算每对之间的梯形面积并将它们总结起来,如下图所示。它具有最大的计算误差,因为它大大简化了问题。

在此处输入图像描述

辛普森 (1/3) 法

当我们谈论曲线时要好得多!让我们保持简单和重点。您可以使用二次 (y=ax2+bx+c) 并具有 3 个数据点。使用您的三个数据点,您可以计算a, bc. 那么曲线下的面积并没有那么困难,但是我们有更好的解决方案!信不信由你,这种整合的价值很简单

ba6(f(a)+4×f(m)+f(b))

在哪里(a,f(a))(b,f(b))是区间的端点并且(m,f(m))是中点。这里查看下图以比较这些方法。

在此处输入图像描述

隆贝格方法

可以递归地应用辛普森和/或梯形方法以实现更准确的计算。它被称为Romberg 方法这些方法的准确性在区间的长度上。更小的间隔提供更准确的积分。Romberg 使用这个事实迭代地更接近更准确的答案。

当然还有更多算法可以做到这一点。

PS:你当然有不同语言的库和函数来为你计算它。例如,Scipy 为 Python 提供

希望能帮助到你!祝你好运!