【问题标题】:NN with Keras predicts classes as dtype=float32 as oppose to true class values of 1,2,3, why?使用 Keras 的 NN 将类预测为 dtype=float32 与 1、2、3 的真实类值相反,为什么?
【发布时间】:2018-06-22 00:31:18
【问题描述】:

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

  • 类被标记为 1、2、3
  • 我有 13 个属性和 178 个观察值(小数据集)
  • 下面是实现的代码和我得到的结果:

    df.head() enter image description here

    X=df.ix[:,1:13]

    y= np.ravel(df.Type)

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

    scale the data:

    scaler = StandardScaler().fit(X_train)

    X_train = scaler.transform(X_train)

    X_test = scaler.transform(X_test)

    define the NN

    model = Sequential()

    model.add(Dense(13, activation='relu', input_shape=(12,)))

    model.add(Dense(4, activation='softmax'))

    fit the model

    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

    model.fit(X_train, y_train1,epochs=20, batch_size=1, verbose=1)

现在这是我将我的预测存储到 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 后,我​​只得到一个零数组,因为所有值都很小。

非常感谢您的帮助!

【问题讨论】:

    标签: neural-network keras classification prediction


    【解决方案1】:

    您会看到每个类别的概率。要将概率转换为类别,只需取每个案例的最大值。

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

    【讨论】:

    • Ioannis,谢谢!成功了,非常感谢
    • 那你可以接受并支持我的回答,也谢谢你
    猜你喜欢
    • 2020-10-10
    • 2018-07-26
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2021-01-26
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多