在这种情况下,roc_auc_score() 的第二个参数应该是
clf.predict_proba(X_test)得到的预测概率。
在这个函数内部计算不同的阈值
这个预测概率的基础。
在documentation 中有一个例子:
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
了解roc_auc_score 的计算方式可能会有所帮助
看看roc_curve它自己。这可以通过函数来完成
sklearn.metrics.roc_curve()。取自documentation的示例:
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 ])
(尽管y在后一个例子中不同,它仍然是一个二进制
分类,其中 2 为正类。)
从后一个示例中可以看出,采用了不同的阈值
来自提供的scores。
ROC Curve 将通过将真阳性率 tpr 放在图的 y 轴上并将误报率 fpr 放在图的 x 轴上来生成。