sklearn中ROC曲线的AUC

时间:2019-04-16 06:17:24

标签: python scikit-learn

我试图了解ROC曲线对AUC的作用。

y_pred = clf.predict(X2)
probs = clf.predict_proba(X2)
# keep probabilities for the positive outcome only
probs = probs[:, 1]
# calculate AUC
auc = roc_auc_score(y_true, probs)

我运行probs = probs[:,1]时的AUC为0.66。但是,当我运行probs=probs[:,0]时,AUC为0.34。

我正在解决二进制类问题。

混乱矩阵如下

array([[  77,   34],
       [ 825, 1027]])

我的困惑是,为什么文档说明我们必须使用更大的类。上等阶级这个词是什么意思。如果我要交换标签,没关系吗?

docs

中提取
  

对于二进制y_true,y_score应该是该类的分数   带有更大的标签。

1 个答案:

答案 0 :(得分:1)

score of the class with greater label意味着分数应针对该班级,以1(更大的索引)表示。

如果输入为多标签类型,则分数的维度应为y。请记住,在输入roc_auc_score之前,必须先将y转换为一个或多个热矢量。

当您给出proba值的第一列(代表类0的概率)时,这就是分数较低的原因。