我有一个用Keras编写的多标签分类器,我想从中计算AUC并绘制从我的测试集中分类的每个元素的ROC曲线 .
一切似乎都很好,除了一些元素的roc曲线具有如下斜率:
在这种情况下,我不知道如何解释斜率 .
基本上我的工作流程如下,我有一个预训练的 model
,Keras的实例,我有 X
和二值化标签 y
, y
中的每个元素都是一个长度为1000的数组,因为它是一个多标签分类问题 y
中的元素可能包含多个1,表示该元素属于多个类,因此我使用了 binary_crossentropy
的内置丢失,并且我的模型预测输出是分数临时性 . 然后我按如下方式绘制roc曲线 .
from sklearn.metrics import roc_curve, auc
#...
for xi, yi in (X_test, y_test):
y_pred = model.predict([xi])[0]
fpr, tpr, _ = roc_curve(yi, y_pred)
plt.plot(fpr, tpr, color='darkorange', lw=0.5)
预测方法返回概率,因为我正在使用keras的功能api .
有谁知道为什么roc曲线看起来像这样?
1 回答
在scikit-learn的邮件列表中询问,他们回答说:
这个问题就是这种情况 .