sklearn.metrics.roc_curve仅返回少量fpr、tpr、threshold原因咨询
sklearn的roc_curve返回少量FPR、TPR、阈值的原因
- 这是
sklearn.metrics.roc_curve的默认设计逻辑:函数默认开启了drop_intermediate=True参数,只会保留能改变FPR或TPR取值的阈值,不会为每一个预测分数都生成对应记录,避免生成大量冗余的重复FPR/TPR点。 - 从你的返回结果可以看出,你的模型正负样本区分度极高,预测分数几乎完全可分:
- 阈值高于6.5198536时,所有样本都被判定为负样本,FPR和TPR都为0
- 阈值降到3.4357991时,96.77%的正样本都被正确召回,FPR仍为0,说明绝大多数正样本得分高于3.43,所有负样本得分低于3.43
- 阈值降到2.5991373时,仅出现1例负样本被误判为正(对应FPR=0.00204499),TPR没有变化
- 阈值降到2.575739时,剩余的正样本全部被召回,TPR达到1,FPR没有变化
- 阈值低于0.8769072时,所有样本都被判定为正样本,FPR达到1
整个过程中只有6个阈值点会改变FPR或TPR的取值,所以返回的数组长度仅为6。
- 如果需要获取所有对应唯一预测分数的阈值点,可以将
drop_intermediate参数设置为False,调用示例如下:from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_true, y_score, drop_intermediate=False)
内容的提问来源于stack exchange,提问作者exercise-3949
相关产品推荐
相关产品推荐

