scikit-learn:如何定义 ROC 曲线的阈值?
scikit-learn: How do I define the thresholds for the ROC curve?
在 scikit-learn
中绘制 ROC(或推导 AUC)时, 如何为 roc_curve
指定 任意阈值,而不是具有函数在内部计算它们 return 它们?
from sklearn.metrics import roc_curve
fpr,tpr,thresholds = roc_curve(y_true,y_pred)
在 上提出了一个相关问题,但 OP 接受的答案表明他们的意图与写法不同。
谢谢!
您从 classifier 得到的是分数,而不仅仅是 class 预测。
roc_curve
将为您提供一组阈值以及相关的假阳性率和真阳性率。
如果你想要自己的阈值,就用它:
y_class = y_pred > threshold
然后你可以显示一个混淆矩阵,这个新的 y_class
与 y_true
相比。
如果你想要多个阈值,做同样的事情,并从每个阈值中获取混淆矩阵以获得真假阳性率。
很简单。 ROC 曲线显示不同阈值的输出。您总是为您的模型选择最佳阈值以获得预测,但 ROC 曲线向您显示 robust/good 您的模型如何针对不同的阈值。在这里你有很好的解释它是如何工作的:https://www.dataschool.io/roc-curves-and-auc-explained/
在 scikit-learn
中绘制 ROC(或推导 AUC)时, 如何为 roc_curve
指定 任意阈值,而不是具有函数在内部计算它们 return 它们?
from sklearn.metrics import roc_curve
fpr,tpr,thresholds = roc_curve(y_true,y_pred)
在
谢谢!
您从 classifier 得到的是分数,而不仅仅是 class 预测。
roc_curve
将为您提供一组阈值以及相关的假阳性率和真阳性率。
如果你想要自己的阈值,就用它:
y_class = y_pred > threshold
然后你可以显示一个混淆矩阵,这个新的 y_class
与 y_true
相比。
如果你想要多个阈值,做同样的事情,并从每个阈值中获取混淆矩阵以获得真假阳性率。
很简单。 ROC 曲线显示不同阈值的输出。您总是为您的模型选择最佳阈值以获得预测,但 ROC 曲线向您显示 robust/good 您的模型如何针对不同的阈值。在这里你有很好的解释它是如何工作的:https://www.dataschool.io/roc-curves-and-auc-explained/