如何获得负面课程的AUC?

时间:2017-02-06 03:04:02

标签: scikit-learn

我正在使用sklearn来计算我的二元分类模型的AUC:

roc_auc_score(Y_test_binary, plc.predict_proba(X_test, y_true))

它返回0.810477872581。根据我的理解,它代表了模型识别积极阶级的程度。

但是,我也想知道另一方:我也想计算负面类的AUC。我该怎么办?我应该玩“平均”参数吗?

=============================================== =========

根据文档,似乎“average = None”可以“返回每个班级的分数”。但它仍然只返回一个值:

>>> import numpy as np
>>> from sklearn.metrics import roc_auc_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> roc_auc_score(y_true, y_scores, average=None)
0.75

我希望第1类有一个数字,第0类有一个数字。

1 个答案:

答案 0 :(得分:0)

我不确定在二元分类问题中谈论负面类的AUC是否有意义。我会说它只是(1 - AUC得分)用正面等级计算。

说服自己让我们重用你的例子:

>>> import numpy as np
>>> from sklearn.metrics import roc_auc_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> roc_auc_score(y_true, y_scores)
0.75

您可以切换y_true的标签并获得0.25:

>>> (y_true == 0).astype(np.int32)
array([1, 1, 0, 0], dtype=int32)

>>> roc_auc_score(y_true == 0, y_scores)
0.25

average参数仅用于多类问题。