关于roc_curve的疑惑和解释
前言
模型训练完成后,在计算ks值以及绘制roc曲线和auc曲线时候,我们方便的调用sklearn.metrics中的ric_curve(y_true, y_pre_pro)方法,计算tpr、fpr、threshholds。函数roc_curve() 通过对 y_pre_pro 进行排序,将排序后的y_pre_pro从大到小作为阈值,计算该阈值下的tpr、fpr,并且以下图所示的的形式将结果返回。
疑惑1:len(thresholds)的长度为什么比len(y_pre_pro)大1?
查看roc_curve()函数的源码发现:
其返回值thresholds的说明为:降低用于计算fpr和tpr的决策函数的阈值。“threshold[0]”表示没有预测到任何实例,并被任意设置为“max(y_score) + 1”。
由此可以解释 len(thresholds) = len(y_pre_pro) + 1。
疑惑2:其返回一个大于1的阈值,如何不影响最终roc和auc曲线图
根据疑惑1的解释,其大于1 的阈值位于thresholds[0]的位置,并且与tpr、fpr位置相对应,如果我们不对