Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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
Python 多类分类的roc_auc_分数,AxisError:轴1超出维度1数组的界限_Python_Scikit Learn_Random Forest_Multiclass Classification - Fatal编程技术网

Python 多类分类的roc_auc_分数,AxisError:轴1超出维度1数组的界限

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

我有一个管道,随机森林回归器作为估计量。(您不必检查管道,它对任何估计器都可以正常工作)

目标包含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",
    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阵列,扁平化