sklearn.metric.auc函数计算出的结果很奇怪

  统计/机器学习 模型验证 Python 损失函数    浏览次数: 780
0

我用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的数。有谁知道为什么吗?

 

魏哲   2017-03-30 11:37



   1个回答 
3

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


派大星   2017-03-31 09:38



  相关主题

精度召回precision recall auc是什么?   1回答

python里什么模块可以计算精度-召回(precision-recall)的AUC?   1回答

多元分类的roc auc   1回答

二元分类什么时候用LogLoss、什么时候用ROC AUC?如何选择?   1回答

sklearn.metrics.auc里提到的梯形法则是什么意思?   2回答

sklearn里计算roc_auc_score,报错ValueError: bad input shape   1回答

如何利用python画分类器的ROC曲线?   1回答

roc auc小于0.5是什么情况?   3回答

sklearn.preprocessing.StandardScaler采用的是哪种标准化的方法?   1回答

怎么直观理解ROC AUC的概率统计意义?   1回答

R里有没有package可以画ROC,计算AUC的?   2回答

怎么理解roc convex hull?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!