roc_auc_score()、auc()和roc_curve()

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()

roc_auc_score()、auc()和roc_curve()_第1张图片

 

参考文献

sklearn学习:为什么roc_auc_score()和auc()有不同的结果? - HuaBro - 博客园 (cnblogs.com)

你可能感兴趣的:(python,机器学习,开发语言)