Python 多类分类的roc_auc_分数,AxisError:轴1超出维度1数组的界限
我有一个管道,随机森林回归器作为估计量。(您不必检查管道,它对任何估计器都可以正常工作) 目标包含5个类,我想计算Python 多类分类的roc_auc_分数,AxisError:轴1超出维度1数组的界限,python,scikit-learn,random-forest,multiclass-classification,Python,Scikit Learn,Random Forest,Multiclass Classification,我有一个管道,随机森林回归器作为估计量。(您不必检查管道,它对任何估计器都可以正常工作) 目标包含5个类,我想计算roc\u auc\u得分。在阅读Sklearn之后,我了解到要计算每个类的ROC AUC,必须使用以下语法: # Compute roc_auc for class 0 roc_auc_score( y_test, pipeline.predict_proba(X_test)[:, 0], multi_class="ovr", a
roc\u auc\u得分
。在阅读Sklearn之后,我了解到要计算每个类的ROC AUC,必须使用以下语法:
# Compute roc_auc for class 0
roc_auc_score(
y_test,
pipeline.predict_proba(X_test)[:, 0],
multi_class="ovr",
average="macro",
)
但这给了我一个错误:
AxisError: axis 1 is out of bounds for array of dimension 1
我发现了一个类似的问题,但那条线索没有帮助。当我将上述代码更改为以下代码时,工作正常:
# Remove the class subsetting
roc_auc_score(
y_test,
logreg_pipeline.predict_proba(X_test),
multi_class="ovr",
average="macro",
)
我没有用[:,0]
指定第一个类,而是传递了从predict\u proba
获得的整个numpy数组,它返回了0.92分。我应该假设这个分数是所有5个班级roc_auc的宏观平均值吗
注意:目标没有编码,因为目标中有5个类,predict_proba将返回一个包含5列的numpy数组请不要使用注释添加信息-编辑并更新您的帖子。是否
y_test
是形状数组(N,5)
?@ArturoSbr没有。但我从预测概率
中得到的信息是,列车的形状是什么?@ArturoSbr(36139,)
。它是一个1D阵列,扁平化