我正在尝试使用Sklean软件包的分类模块评估多类分类的模型。
y_pred的尺寸:(1000,36(y_test的尺寸:(1000,36(
我尝试在两个阵列上调用分类_report,即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]]))
我期望根据传递给该功能的标签获得所有列的精确度,召回F1和总平均指标。
对于您的错误,您需要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)))