gpt4 book ai didi

python - 如何在使用 Scikit-Learn 创建 ROC 曲线时使用预测分数

转载 作者:太空狗 更新时间:2023-10-30 02:42:16 24 4
gpt4 key购买 nike

我有以下代码:

from sklearn.metrics import roc_curve, auc

actual = [1,1,1,0,0,1]
prediction_scores = [0.9,0.9,0.9,0.1,0.1,0.1]
false_positive_rate, true_positive_rate, thresholds = roc_curve(actual, prediction_scores, pos_label=1)
roc_auc = auc(false_positive_rate, true_positive_rate)
roc_auc
# 0.875

在此示例中,prediction_scores 的解释很简单,即越高 的分数表示预测的可信度越高。

现在我有了另一组预测预测分数。它是非分数的,解释是相反的。意思是较低分数对预测更有信心。

prediction_scores_v2 = [10.3,10.3,10.2,10.5,2000.34,2000.34]
# so this is equivalent

我的问题是:我如何在 prediction_scores_v2 中对其进行缩放,以便它给出与第一个相似的 AUC 分数?

换句话说,Scikit's ROC_CURVE要求 y_score正类的概率估计。如果我的 y_score错误类别的概率估计值,我该如何处理该值?

最佳答案

对于 AUC,您实际上只关心预测的顺序。因此,只要这是真的,您就可以将您的预测转化为 AUC 可接受的格式。

您需要除以最大值以使您的预测介于 0 和 1 之间,然后从 1 中减去,因为在您的情况下越低越好:

max_pred = max(prediction_scores_v2)
prediction_scores_v2[:] = (1-x/max_pred for x in prediction_scores_v2)

false_positive_rate, true_positive_rate, thresholds = roc_curve(actual, prediction_scores_v2, pos_label=1)
roc_auc = auc(false_positive_rate, true_positive_rate)
# 0.8125

关于python - 如何在使用 Scikit-Learn 创建 ROC 曲线时使用预测分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com