Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scikit learn 我应该如何获得负类的AUC?_Scikit Learn - Fatal编程技术网

Scikit learn 我应该如何获得负类的AUC?

Scikit learn 我应该如何获得负类的AUC?,scikit-learn,Scikit Learn,我正在使用计算我的二元分类模型的AUC: roc_auc_score(Y_test_binary, plc.predict_proba(X_test, y_true)) 它返回0.810477872581。根据我的理解,它代表了模型识别积极类的程度 然而,我也想知道另一面:我也想计算负类的AUC。我该怎么做?我应该使用“平均”参数吗 ======================================================== 根据文档,似乎“平均=无”可以“返回每个类的分数

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

roc_auc_score(Y_test_binary, plc.predict_proba(X_test, y_true))
它返回0.810477872581。根据我的理解,它代表了模型识别积极类的程度

然而,我也想知道另一面:我也想计算负类的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, average=None)
0.75

我希望1类有一个数字,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
参数仅用于多类问题。

我实际上也有同样的想法。但是考虑到这个例子:y_true=np.array([0,0,1,1]),y_得分=np.array([0.1,0.1,0.9,0.9])。在这种情况下,calssifier可以很好地区分这两个类。类别1的AUC为1,而类别0的AUC为0。似乎两者都应该是1。