【发布时间】:2019-11-07 01:47:09
【问题描述】:
我尝试使用来自 sklearn.metrics 的分类报告:
sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)
作为预测和标签的输入,我有一个列表,每个列表具有以下形式:
预测:
[array([0, 0, 0, 3, 0, 3, 2, 2, 1, 1, 2, 0, 2, 3, 0, 2, 2, 2, 2, 3, 3, 2,
2, 2, 2, 2, 2, 1, 0, 3, 2, 2, 0, 2, 2, 3, 2, 0, 0, 0, 0, 0, 2, 2,
2, 1, 0, 0, 0, 2, 2, 0, 2, 0, 2, 1, 0, 2, 2, 3, 0, 2, 0, 2])]
为真:
[array([2, 3, 3, 2, 3, 3, 2, 3, 2, 2, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3,
2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 2,
2, 2, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 2, 2, 3, 2, 2, 2, 2, 2])]
对于上面的 sklearn 函数,我需要一个简单的列表。数组产生错误:
ValueError:不支持多类多输出
我已经尝试过.tolist(),但对我不起作用。
我正在寻找将我的数组列表 [?] 转换为简单列表的可能性。
感谢您的帮助。
【问题讨论】:
-
请为您的代码使用代码块(
{}图标)。 -
也许您需要单元素列表的第一个元素:
y_true[0]和y_pred[0],您尝试过吗? -
为什么要发送一个长度为 1 的列表,其中包含一个数组?直接发送数组?
-
“我正在寻找将我的数组列表 [?] 转换为简单列表的可能性。”您可以毫无问题地传递 numpy 数组。但是由于某种原因,您将数组包装在列表中。所以不是
pred = [np.array([0, 0, ...,])]而是pred = np.array([0, 0, ...,])。如果您可以显示生成pred和true的代码,则可能更明显的是您的错误是将它们放入单个元素列表中。 -
@VomDorfe 看看我的回答
标签: python arrays list scikit-learn