【发布时间】:2017-09-21 04:15:24
【问题描述】:
我正在尝试对 Keras 模型预测的输出进行简单的分类报告。输入的格式是两个一维数组,但是还是会报错。
Y_pred = np.squeeze(model.predict(test_data[0:5]))
classification_report(test_labels[0:5], Y_pred)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-235-49afd2f46d17> in <module>()
----> 1 classification_report(test_labels[0:5], Y_pred)
/Library/Python/2.7/site-packages/sklearn/metrics/classification.pyc in classification_report(y_true, y_pred, labels, target_names, sample_weight, digits)
1356
1357 if labels is None:
-> 1358 labels = unique_labels(y_true, y_pred)
1359 else:
1360 labels = np.asarray(labels)
/Library/Python/2.7/site-packages/sklearn/utils/multiclass.pyc in unique_labels(*ys)
97 _unique_labels = _FN_UNIQUE_LABELS.get(label_type, None)
98 if not _unique_labels:
---> 99 raise ValueError("Unknown label type: %s" % repr(ys))
100
101 ys_labels = set(chain.from_iterable(_unique_labels(y) for y in ys))
ValueError: Unknown label type: (array([-0.38947693, 0.18258421, -0.00295772, -0.06293461, -0.29382696]), array([-0.46586546, 0.1359883 , -0.00223112, -0.08303966, -0.29208803]))
两个输入都属于同一类型,所以我很困惑为什么这不起作用?我已经尝试将类型显式更改为 dtype=float 并展平输入,但它仍然不起作用。
【问题讨论】:
-
你能把
test_labels和Y_pred的形状都包括进来吗? -
是分类问题还是回归问题?
-
错误最后一行显示的数组显示了您的
y。在我看来,这是连续的。因此分类类型的方法或估计器将无法使用它。因为这是回归问题 -
如果您使用的是 MNIST 教程,这是一个分类问题。但是您在错误中看到的 y 值与此不对应。您应该检查 y 值,它们实际上是您想要的(输出类的标签)。并且最好将整个代码放在这里,以便于调试。
-
这是一个回归问题,你是对的,我正在尝试使用 classifcaiton_report 进行回归,但这是行不通的。
标签: numpy scikit-learn keras