我是靠谱客的博主 无心人生,最近开发中收集的这篇文章主要介绍【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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复