Я пытаюсь построить модель Keras с двоичными выходными данными для задачи рекомендации.
После того, как я построил и обучил, похоже, что она сходится и улучшает как обучение, так и точность проверки:
EPOCH: 0
Train on 4641920 samples, validate on 1160480 samples
Epoch 1/1
4641920/4641920 [==============================] - 93s 20us/step - loss: 0.0317 - val_loss: 0.0262
TRAIN F1: 0.16175450762829402
VAL F1: 0.09613703897919944
EPOCH: 1
Train on 4641920 samples, validate on 1160480 samples
Epoch 1/1
4641920/4641920 [==============================] - 100s 22us/step - loss: 0.0238 - val_loss: 0.0256
TRAIN F1: 0.2667970500753779
VAL F1: 0.1608853650479022
Но когда я пытаюсь предсказать значения в тестовом наборе, он выводит только 0 (однако, похоже, нет такой проблемы с набором проверки):
val_prediction = model.predict(x=[val_customer_id, val_vendor_id], verbose=1, batch_size=384)
print(np.unique(val_prediction.round()))
1160480/1160480 [==============================] - 6s 5us/step
[0. 1.]
val_prediction = model.predict(x=[test_customer_id, test_vendor_id], verbose=1, batch_size=384)
print(np.unique(val_prediction.round()))
1672000/1672000 [==============================] - 8s 5us/step
[0.]
Я действительно борюсь здесь, и было бы очень полезно, если бы кто-нибудь мог мне помочь.