【发布时间】:2016-09-09 05:03:23
【问题描述】:
我有以下代码:
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 是错误类别的概率估计,我该如何处理该值?
【问题讨论】:
-
我不确定你在问什么。您的新预测分数代表什么?
-
@BrenBarn:您可以将其视为信心的“倒数”。
-
在什么意义上?您根据特定信息生成 AUC,即各种区分阈值的误报率和真阳性率。您不能只取一些任意数字并从中计算 AUC。您需要从统计/数学角度解释这些数字代表什么。
-
@BrenBarn:我想使用 Scikit-Learn ROC 来衡量预测工具的性能。他们有自己的公式来计算该分数。但是这个工具给出了我在 V2 中所说的值。该值的解释正如我所说,越低越好。
-
“越低越好”不够具体。您需要知道如何解释实际数字。 5和10有什么区别? 5到6之间呢?是什么让您认为可以使用这些值来计算 AUC?
标签: python machine-learning scikit-learn roc