我正在尝试使用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和总平均度量。
答案 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)))