我正在使用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类有一个数字。
答案 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
参数仅用于多类问题。