【发布时间】:2018-06-22 00:31:18
【问题描述】:
我正在葡萄酒数据集上实现一个简单的神经网络。 NN 运行良好并产生预测分数,但是,当我尝试探索测试数据集上的实际预测值时,我收到一个 dtype=float32 值的数组,与类的值相反。
- 类被标记为 1、2、3
- 我有 13 个属性和 178 个观察值(小数据集)
-
下面是实现的代码和我得到的结果:
df.head()enter image description hereX=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 NNmodel = Sequential()model.add(Dense(13, activation='relu', input_shape=(12,)))model.add(Dense(4, activation='softmax'))fit the modelmodel.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