NN with Keras 预测 classes 为 dtype=float32 而不是真正的 class 值 1,2,3,为什么?

NN with Keras predicts classes as dtype=float32 as oppose to true class values of 1,2,3, why?

我正在对葡萄酒数据集实施一个简单的神经网络。 NN 运行良好并生成预测分数,但是,当我尝试探索测试数据集上的实际预测值时,我收到一个 dtype=float32 值的数组,与 类 的值相反。

现在这是我将预测存储到 y_pred 并获得最终分数的地方:

`y_pred = model.predict(X_test)`

`score = model.evaluate(X_test, y_test1,verbose=1)`


`59/59 [==============================] - 0s 2ms/step

[0.1106848283591917, 0.94915255247536356]`

当我探索 y_pred 时,我看到以下内容:

`y_pred[:5]`

`array([[  3.86571424e-04,   9.97601926e-01,   1.96467945e-03,
      4.67598657e-05],
   [  2.67244829e-03,   9.87006545e-01,   7.04612210e-03,
      3.27492505e-03],
   [  9.50196641e-04,   1.42343721e-04,   4.57215495e-02,
      9.53185916e-01],
   [  9.03929677e-03,   9.63497698e-01,   2.62350030e-02,
      1.22799736e-03],
   [  1.39460826e-05,   3.24015366e-03,   9.96408522e-01,
      3.37353966e-04]], dtype=float32)`

不确定为什么我看不到实际预测的 类 为 1,2,3?

尝试转换为 int 后,我​​得到了一个零数组,因为所有值都很小。

非常感谢您的帮助!!

您看到的是每个 class 的概率。要将概率转换为 class,只需取每种情况的最大值。

import numpy as np
y_pred_class = np.argmax(y_pred,axis=1)