神经网络训练和验证准确度得分为 0.00000

Neural Network train and val accuracy score is 0.00000

为 Spaceship Titanic comp 二元分类问题开发神经网络。但是,我一直在 train 和 val 数据上得到 0.0000 的分数,但不知道为什么。模型适用于 knn、lightxgb 和随机森林,所以我认为这不是数据问题。

代码如下

print(X_train_scaled.shape)
print(y_train2.shape)

(6085, 23)
(6085, 1)

# Create model
model1 = Sequential()

model1.add(Dense(18, activation = 'relu', kernel_initializer='he_uniform', input_dim = X_train_scaled.shape[1]))
model1.add(Dense(9, activation='relu', kernel_initializer='he_uniform'))
model1.add(Dense(1, activation = 'sigmoid'))

optimizer = Adam(learning_rate=0.001)
model1.compile(loss='binary_crossentropy',
              optimizer=optimizer,
              metrics=[tf.keras.metrics.Accuracy()])

history = model1.fit(X_train_scaled, y_train2, batch_size=100, epochs=30, validation_split = 0.3)

Epoch 1/30
43/43 [==============================] - 1s 7ms/step - loss: 0.7348 - accuracy: 0.0000e+00 - val_loss: 0.6989 - val_accuracy: 0.0000e+00
Epoch 2/30
43/43 [==============================] - 0s 4ms/step - loss: 0.6603 - accuracy: 0.0000e+00 - val_loss: 0.6324 - val_accuracy: 0.0000e+00
Epoch 3/30
43/43 [==============================] - 0s 3ms/step - loss: 0.5994 - accuracy: 0.0000e+00 - val_loss: 0.5784 - val_accuracy: 0.0000e+00
Epoch 4/30
43/43 [==============================] - 0s 3ms/step - loss: 0.5539 - accuracy: 0.0000e+00 - val_loss: 0.5401 - val_accuracy: 0.0000e+00

代替:

metrics=[tf.keras.metrics.Accuracy()]

尝试:

metrics=['accuracy']