这是代码和输出,我认为从输出中可以看出,当 fpr 为 0 时,tpr 为 0,这是正确的,因为预测结果将所有内容都标记为 0。
但是输出还说,当 fpr 为 1 时,tpr 也为 1。我认为这是不正确的,因为预测器从不预测某些东西是正的(label to be 1
),那么 fpr (= # of correct prediction of 1/total # of 1) 和 tpr (= # of 1 / total # of 0) 都为 1?
import numpy as np
from sklearn import metrics
y = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1])
pred = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
fpr, tpr, thresholds = metrics.roc_curve(y, pred)
print fpr
print tpr
print thresholds
print metrics.auc(fpr, tpr)
输出,
[ 0. 1.]
[ 0. 1.]
[1 0]
0.5