Выбор метрики проверки для `categorical_crossentropy` в Керасе


person Anakin Skywalker    schedule 15.02.2021    source источник
comment
Разве это не показывает точность проверки в конце эпохи?   -  person Frightera    schedule 16.02.2021
comment
Я не уверен, это медленно после первой эпохи.   -  person Anakin Skywalker    schedule 16.02.2021
comment
@Frightera, ты был прав, моя первая эпоха была очень медленной.   -  person Anakin Skywalker    schedule 16.02.2021


Ответы (1)


Я надеюсь, что следующее может помочь вам:

Использование "categorical_crossentropy" говорит мне, что ваши метки представляют собой одну горячую кодировку для разных классов.

Допустим, у вас есть 15 классов, правильным прогнозом будет вектор с 14 нулями и единицей по соответствующему индексу. В этом контексте "accuracy" будет очень высоким, поскольку ваша модель будет правильно предсказывать в основном ноль везде, поэтому точность должна быть не менее 13/15 = 0,86.

Более подходящей метрикой будет "categorical_accuracy", которая даст вам 1, если модель предсказывает правильный индекс, и 0 в противном случае.

Если у вас есть проверка "categorical_accuracy" лучше, чем 1/15 = 0,067 (при условии, что ваш класс правильно сбалансирован), ваша модель лучше, чем случайная.

Список показателей можно найти на странице показателей keras.

person Leo    schedule 15.02.2021
comment
Спасибо! Что бы вы порекомендовали, если у меня есть 60000 точек данных с 14 классами медицинских заключений (некоторые проблемы) и 1 классом «Нет результатов». Данные сбалансированы примерно на 50%-50% в этом конкурсе kaggle.com/ c/vinbigdata-chest-xray-abnormalities-detection - person Anakin Skywalker; 16.02.2021
comment
В этом контексте было бы интересно разделить эти два случая. Если у вас достаточно времени, возможно, вы могли бы попытаться создать собственную метрику точности для каждого из этих двух случаев см. здесь. Если нет, ваша модель будет лучше, чем случайная, когда categorical_accuracy > 0.5. - person Leo; 16.02.2021