我认为roc_curve()
函数是为每个阈值计算假阳性率和真阳性率的。但是下面的代码显示假阳性率和阈值的维度不同。
from sklearn.metrics import roc_curve
fpr,tpr,thresholds = roc_curve(y_train_5,y_scores)
fpr.shape #(3908,)
thresholds.shape #(59966,)
我还想知道为什么
precisions,recalls,thresholds = precision_recall_curve(y_train_5,y_scores)
precisions #(59967,)
thresholds #(59966,)
精确度的维度与阈值的维度相差一个?
回答:
关于roc_curve()
函数,与精确度/召回率曲线不同的是,输出的长度取决于drop_intermediate
选项(默认为True),该选项用于丢弃次优阈值(参考这里)。