Прогнозы тестов одинаковы - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь построить модель 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.]

Я действительно борюсь здесь, и было бы очень полезно, если бы кто-нибудь мог мне помочь.

1 Ответ

0 голосов
/ 09 июля 2020

Есть две возможные причины:

1- Если ваш набор для обучения и тестов слишком редки, то вы получите плохую точность на тестовом наборе

2- Ваша модель переобучена .

Ответ 1:

Если набор данных слишком разрежен, вам необходимо переупорядочить их. Попробуйте добавить некоторые проверочные значения для проверки, посмотрите, меняется ли результат.

Ответ 2:

Если ваша модель переоснащается:

a- Добавление новых слоев

b- Выпадение

c - Увеличение размера партии

может решить ваши проблемы.

...