我是靠谱客的博主 无心人生,最近开发中收集的这篇文章主要介绍【Pytorch-从一团乱麻到入门】:5、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(2),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

AUC的计算属实隐藏着无数的坑,一旦遇到就得吭哧吭哧排查很久,在次进行记录,给走过路过的小伙伴们提个醒。

1、Bug如下:

如果遇到ROC-AUC数值出现多个0.5,那么极有可能是数据本身的问题,例如:当预测类别只有一类时,计算ROC-AUC会得到0.5 !

代码如下:

import numpy as np
from sklearn import metrics
from sklearn.metrics import precision_recall_curve,auc,accuracy_score


ture_lab=[1,1,1,1,1,0,0,0,0]
pre_lab=[0,0,0,0,0,0,0,0,0]

print("ture_lab 为0:",ture_lab.count(0))
print("pre_lab 为1:",pre_lab.count(1))
print("pre_lab 为0:",pre_lab.count(0))

from sklearn.metrics import precision_recall_curve,auc,roc_auc_score
precision, recall, thresholds = precision_recall_curve(ture_lab,pre_lab)
auc_precision_recall = auc(recall, precision)

roc_auc=roc_auc_score(ture_lab, pre_lab)

stat="precision:"+str(precision)+"nrecall:"+str(recall)+"nthresholds:"+str(thresholds)+"nauc_precision_recall:"+str(auc_precision_recall)+"nROC-AUC:"+str(roc_auc)
print(stat)

输出为:

ture_lab 为0: 4
pre_lab 为1: 0
pre_lab 为0: 9
precision:[0.55555556 1.        ]
recall:[1. 0.]
thresholds:[0]
auc_precision_recall:0.7777777777777778
ROC-AUC:0.5

 必然,这个ROC-AUC值是不对的,需要警惕!

2、解决方法:

避免数据不平衡情况,或者在代码中加入判断行,进行极端条件警示和定义即可。

最后

以上就是无心人生为你收集整理的【Pytorch-从一团乱麻到入门】:5、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(2)的全部内容,希望文章能够帮你解决【Pytorch-从一团乱麻到入门】:5、模型效果评估指标:ROC-AUC、PR-AUC及可能遇到的问题(2)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部