首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动计算AUC

手动计算AUC
EN

Stack Overflow用户
提问于 2018-06-14 08:50:05
回答 2查看 10.9K关注 0票数 3

如何获得具有fpr和tpr的AUC值?Fpr和tpr仅仅是从这些公式中获得的2个浮点数:

代码语言:javascript
复制
my_fpr = fp / (fp + tn)
my_tpr = tp / (tp + fn)
my_roc_auc = auc(my_fpr, my_tpr)

我知道这是不可能的,因为fpr和tpr只是一些浮点数,它们需要是数组,但我不知道如何做到这一点。我还知道我可以这样计算AUC:

代码语言:javascript
复制
y_predict_proba = model.predict_proba(X_test)
probabilities = np.array(y_predict_proba)[:, 1]
fpr, tpr, _ = roc_curve(y_test, probabilities)
roc_auc = auc(fpr, tpr)

但出于某些原因,我想避免使用predict_proba。所以我的问题是:我怎样才能获得拥有fp, tp, fn, tn, fpr, tpr的AUC?换句话说,有没有可能在没有roc_curve的情况下获得AUC

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-17 08:30:36

你可以把空间分成两部分:三角形和梯形。三角形将具有面积TPR*FRP/2,即梯形(1-FPR)*(1+TPR)/2 = 1/2 - FPR/2 + TPR/2 - TPR*FPR/2。总面积为1/2 - FPR/2 + TPR/2。这就是你可以得到它的方式,只有2分。

票数 1
EN

Stack Overflow用户

发布于 2019-05-28 13:58:12

可以,可以在不调用roc_curve的情况下获取AUC。

首先需要创建ROC (接收器操作特性)曲线。为了能够使用ROC曲线,您的分类器应该能够对示例进行排名,以便排名较高的示例更有可能是正面的(例如,欺诈性的)。例如,Logistic回归输出概率,这是一个可用于排名的分数。ROC曲线是通过在各种阈值设置下绘制真阳性Pate (TPR)与假阳性率(FPR)的曲线来创建的。举个例子:

通过观察ROC曲线(或AUC)下的面积来确定模型的性能

你可以在here上找到更详细的解释。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50848163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档