Допустим, у меня есть 3 класса, и каждый образец может принадлежать к любому из этих классов.Этикетки выглядят следующим образом.
[
[1 0 0]
[0 1 0]
[0 0 1]
[1 1 0]
[1 0 1]
[0 1 1]
[1 1 1]
]
Я установил свой вывод как Dense (3, активации = "сигмоид"), и я скомпилировал с помощью optimizer = "adam", loss = "binary_crossentropy".По выводам Keras я получаю 0.05 для потерь и 0.98 для точности.
Я думал, что получу только 1 или 0 для значений прогноза, если я использую sigmoid и binary_crossentropy.Тем не менее, model.predict (Training-Features) дал мне значения от 1 до 0, как 0,0026.Я перепробовал все 4 комбинации между категорийным_кросентропией и двоичным_кросентропией с сигмоидом и софтмаксом.Model.predict всегда возвращает значение от 0 до 1 с формой n_samples по n_classes.В приведенном выше примере это будет 7x3.
Затем я обрезал значения на 0,5, как показано ниже, и проверил точность_отчёта (training_labels, preds).Счет упал до 0,1.
preds[preds>=0.5] = 1
preds[preds<0.5] = 0
Буду признателен, если кто-нибудь даст мне несколько советов о том, как мне следует подходить к этой проблеме.
Спасибо!