gpt4 book ai didi

python - 如何手动计算ROC的AUC?

转载 作者:行者123 更新时间:2023-12-01 01:21:39 45 4
gpt4 key购买 nike

我有一个如下所示的数据集:

ID    Class    Predicted Probabilities
1 1 0.592
2 1 0.624
3 0 0.544
4 0 0.194
5 0 0.328
6 1 0.504
. . .
. . .

我的任务是手动计算 AUC...但不知道如何计算!

我知道如何计算 TPR 和 FPR 来创建 ROC 曲线。我如何使用这些数据来计算 AUC?不允许使用像 scikit-learn 这样的库。我到处都找过,但似乎找不到正确的答案。谢谢大家!

最佳答案

您需要使用预测类别和真实类别来计算真阳性率和假阳性率,同时改变类别阈值 (T),即用于预测观察是否属于 0 类或 1 类的截止值。

您需要一个带有标题的数据集,如下所示...

ID、预测概率、预测类别、真实类别、阈值、真阳性标志、假阳性标志

(有关详细信息,请参阅 https://en.wikipedia.org/wiki/Receiver_operating_characteristic)。如果您查看 Wiki 页面,您会发现它们甚至在“曲线下面积”内提供了快速且简单的离散估计。

AUC 代表“曲线下面积”,因此您可能需要执行某种数值积分。在这种情况下,在每个 T 值处,TPR 将是您的 Y,FPR 将是您的 X。

如果你想保持简单,你可以尝试使用梯形规则( https://en.wikipedia.org/wiki/Trapezoidal_rule )之类的东西。

如果您不想自己实现,则可以使用 numpy.trapz (请参阅: https://docs.scipy.org/doc/numpy/reference/generated/numpy.trapz.html ),但从头开始构建也不难(请参阅: Trapezoidal rule in Python )。

您应该能够非常轻松地仅使用数学和 numpy 在 Python 中编写这些函数。事实上,您可能根本不需要任何库。

关于python - 如何手动计算ROC的AUC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769373/

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