Как я могу различить это как Истинное или Ложное согласно вероятности выхода в Керасе? - PullRequest
1 голос
/ 08 января 2020

Когда я прогнозирую, выживет пассажир Titani c или нет, вывод модели - это вероятность. Как я могу различить его как 0 или 1?

Это построение модели

inputs = keras.layers.Input(shape=(8,))
dropout = keras.layers.Dropout(0.2)(inputs)
hidden1 = keras.layers.Dense(40, activation=tf.nn.relu)(dropout)

hidden2 = keras.layers.Dense(30, activation=tf.nn.relu)(hidden1)

hidden3 = keras.layers.Dense(20, activation=tf.nn.relu)(hidden2)

out = keras.layers.Dense(1, activation=tf.nn.sigmoid)(hidden3)
mdl = keras.models.Model(inputs=inputs, outputs=out)

Когда я предсказывал результаты, используя обученную модель, я получил вероятность, а не метки (0 или 1)

res = model.predict(test_data)

Вопрос:

Как сопоставить вероятность с метками (0 или 1)?

1 Ответ

0 голосов
/ 08 января 2020

Вот два подхода для сопоставления вероятности с дискретными метками классов:

Подход 1: Когда порог не требуется

predicted_class = round(res)     # rounds the probability value to 0 or 1

Подход 2: Когда необходимо установить порог для классификации

predicted_class = 1 if res>0.5 else 0     # here threshold = 0.5 and can be fine-tuned based on the observed precision and recall scores
...