Я обучил две модели (двоичные классификаторы с использованием h2o AutoML) и хочу выбрать одну для использования. У меня есть следующие результаты:
model_id auc logloss logloss_train logloss_valid gini_train gini_valid
DL_grid_1 0.542694 0.287469 0.092717 0.211956 0.872932 0.312975
DL_grid_2 0.543685 0.251431 0.082616 0.186196 0.900955 0.312662
auc
и logloss
столбцы метрики кросс-валидации (кросс проверки использует только обучающие данные). ..._train
и ..._valid
метрики найдены путем запуска метрик обучения и проверок через модель соответственно. Я хочу использовать logloss_valid
или, gini_valid
чтобы выбрать лучшую модель.
Модель 1 имеет лучшую Джини (то есть лучше AUC), но модель 2 имеет лучшую потерю логов. Мой вопрос заключается в том, какой из них выбрать, который, я думаю, напрашивается на вопрос, каковы преимущества / недостатки использования либо gini (AUC), либо logloss в качестве метрики решения.
Ответы:
Принимая во внимание, что AUC вычисляется относительно двоичной классификации с изменяющимся порогом принятия решения, logloss фактически принимает во внимание «определенность» классификации.
Поэтому, насколько я понимаю, logloss концептуально выходит за рамки AUC и особенно актуален в случаях с несбалансированными данными или в случае неравномерно распределенных затрат на ошибки (например, обнаружение смертельного заболевания).
В дополнение к этому основному ответу вы можете взглянуть на оптимизацию auc против logloss в задачах двоичной классификации.
Простой пример вычисления logloss и лежащая в его основе концепция обсуждается в этом недавнем вопросе. Функция Log Loss в scikit-learn возвращает разные значения
Кроме того, очень хороший момент был сделан в stackoverflow
источник