ValueError:分类标签报告的未知标签类型

时间:2019-06-30 15:56:07

标签: scikit-learn multiclass-classification

我正在尝试使用sklean包的category_report模块评估用于多类分类的模型。

y_pred的尺寸:(1000,36) y_test的尺寸:(1000,36)

我尝试在2个数组(即y_test和y_pred)上调用分类_报告

def display_results(y_test,y_pred,column_name=labels):
    print(classification_report(y_test,y_pred,target_names=labels))

使用此代码,我得到:

ValueError: Unknown label type: (array([[1, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 1, 1, 0],
       ...,
       [1, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0]]), array([[1, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       ...,
       [1, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0]]))

我期望基于传递给函数的标签获得所有列的Precision,Recall,F1和总平均度量。

1 个答案:

答案 0 :(得分:0)

对于您的错误,您需要np.hstack

在分类器具有多类多输出的地方效果最佳

from sklearn.utils.multiclass import type_of_target
type_of_target(y_test)
type_of_target(y_pred)

>>'multiclass-multioutput'

所以,您的解决方案是

print(classification_report(np.hstack(y_test),np.hstack(y_pred)))