我用sklearn.metric.auc计算二元分类的roc auc,但是结果非常诡异,居然是小于0.5的。
然后我随便试了一个
>>> from sklearn.metrics import auc
>>> y_actual = [0, 0, 1]
>>> y_pred = [0.1, 0.2, 0.9]
>>> auc(y_actual, y_pred)
0.34999999999999
这个分类结果的auc明明是1才对,返回了一个小于0.5的数。有谁知道为什么吗?
1个回答
sklearn.metric.roc_auc_score才是计算ROC AUC的。
>>> y_actual, y_pred = [0, 0, 1], [0.2, 0.1, 0.9]
>> sklearn.metric.roc_auc_score(y_actual, y_pred)
1
你所用的sklearn.metrics.auc(x,y)是计算折线与x轴之间的面积,x是折线上点的横坐标,y是折线上点的纵坐标。
>>> x = [0, 1]
>>> y = [1, 1]
>>> sklearn.metrics.auc(x, y)
1