2022年 11月 9日

python计算AUC值

AUC简介

AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。AUC被广泛应用在多标签分类中衡量分类结果。尤其是样本分布不均时,一般采用AUC作为各标签分类结果的衡量标准。
本文介绍了python实现AUC计算的方法。
首先该方法使用sklearn中的roc_auc_score函数计算,因此需要事先安装sklearn,安装命令为pip install sklearn

计算AUC的代码为:

from sklearn.metrics import roc_auc_score
def caculateAUC(AUC_out,AUC_labels):
    row, col = AUC_labels.shape
    temp = []
    ROC = 0
    for i in range(col):
        try:
            ROC = roc_auc_score(AUC_out[:, i], AUC_labels[:, i], average='micro', sample_weight=None)
        except ValueError:
            pass
        # print("%d th AUROC: %f" % (i, ROC))
        temp.append(ROC)
    for i in range(col):
        ROC += float(temp[i])
    return ROC / (col + 1)
 # 计算的时候调用上方函数,其中AUC_out为网络输出,AUC_labels为监督标签
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16