roc_curve():计算fpr, tpr, thresholds。
>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> pred = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)
auc():计算ROC曲线下的面积.即图中的area。
>>> metrics.auc(fpr, tpr)
0.75
roc_auc_score():计算AUC的值,即输出的AUC。
>>> from sklearn.metrics import roc_auc_score
>>> roc_auc_score(y, pred)
0.75
roc_auc_score()和auc()区别:
AUC并不总是ROC曲线下的面积。曲线下面积是某个曲线下的(抽象)区域,因此它比AUROC更通用.对于不平衡类,最好找到精确回忆曲线的AUC。
画ROC曲线
plt.title('ROC')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.plot(fpr, tpr, '--*b', label="ours")
plt.legend()
plt.show()
参考文献
sklearn学习:为什么roc_auc_score()和auc()有不同的结果? - HuaBro - 博客园 (cnblogs.com)