Проблема в том, что последний слой Dense
должен иметь функцию активации sigmoid
, указывающую, что результат должен быть между 0 и 1. Это то, что мы хотим, потому что мы предсказываем вероятность. Без этого выходные данные могут принимать любое положительное или отрицательное значение, поэтому вы можете увидеть странные значения.
model = tf.keras.Sequential([
preprocessing_layer,
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(1,activation='sigmoid'),
])
Когда вы снова запустите код с сигмоидой, результат будет
Прогнозируемая выживаемость: 100,00% | Фактический результат: DIED
Прогнозируемая выживаемость: 17,95% | Фактический результат: выжил
Прогнозируемая выживаемость: 99,80% | Фактический результат: DIED
Прогнозируемая выживаемость: 0,00% | Фактический результат: DIED
Прогнозируемая выживаемость: 10,65% | Фактический результат: DIED
В этом гораздо больше смысла.