AUC原理可看:https://editor.csdn.net/md/?articleId=104838433

>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr
array([ 0. ,  0.5,  0.5,  1. ])
>>> tpr
array([ 0.5,  0.5,  1. ,  1. ])
>>> thresholds
array([ 0.8 ,  0.4 ,  0.35,  0.1 ])

上述是基础实现,可以按点画图
thresholds为阈值,以FP为X轴,TP为Y轴,画ROC曲线如下图所示:
在这里插入图片描述
由上图围成的面积等于:0.75

调用roc_auc_score

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)
>>>0.75

输出为:0.75

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐