Я пытаюсь лучше понять потерю журналов и как это работает, но я не могу найти одну вещь - поместить число потерь журналов в какой-то контекст. Если у моей модели потеря журнала 0,5, это хорошо? Что считается хорошим и плохим счетом? Как меняются эти пороги?
machine-learning
loss-functions
log-loss
user1923975
источник
источник
Ответы:
Логлосс - это просто где p - просто вероятность, приписанная реальному классу.L ( ря) = - журнал( ря) п
Таким образом, - это хорошо, мы приписали вероятность 1 правильному классу, а L ( p ) = + ∞ - плохо, потому что мы приписали вероятность 0 фактическому классу.L ( p ) = 0 1 L ( p ) = + ∞ 0
Итак, отвечая на ваш вопрос, означает, что в среднем вы приписали правильному классу вероятность p ≈ 0,61 по выборкам.L ( p ) = 0,5 p ≈ 0,61
Теперь решение о том, достаточно ли это хорошо, зависит от приложения, и это зависит от аргумента.
источник
Как и любая метрика, хорошая метрика лучше, чем «глупая», случайная догадка, если вам придется угадывать без информации о наблюдениях. Это называется моделью только для перехвата в статистике.
Эта «тупая» догадка зависит от 2 факторов:
В случае метрики LogLoss, одна обычная «хорошо известная» метрика состоит в том, чтобы сказать, что 0,693 является неинформативным значением. Эта цифра получается путем прогнозирования
p = 0.5
для любого класса бинарных задач. Это верно только для сбалансированных бинарных задач . Потому что, когда распространенность одного класса составляет 10%, выp =0.1
всегда будете прогнозировать для этого класса. Это будет ваша базовая линия тупого, случайного предсказания, потому что предсказание0.5
будет глупее.I. Влияние количества классов
N
на немую логи:В сбалансированном случае (каждый класс имеет одинаковую распространенность), когда вы прогнозируете
p = prevalence = 1 / N
для каждого наблюдения, уравнение становится просто:Logloss = -log(1 / N)
log
существоLn
, неперианский логарифм для тех, кто использует это соглашение.В двоичном случае
N = 2
:Logloss = - log(1/2) = 0.693
Итак, тупые логлоссы следующие:
II. Влияние распространенности занятий на немую логи:
а. Двоичная классификация случаев
В этом случае мы прогнозируем всегда
p(i) = prevalence(i)
и получаем следующую таблицу:Таким образом, когда классы очень несбалансированны (распространенность <2%), лог-лог 0,1 может быть очень плохим! Например, точность 98% была бы плохой в этом случае. Так что, возможно, Logloss не будет лучшим показателем для использования
б. Трехклассный корпус
«Тупой» -логлосс в зависимости от распространенности - случай трех классов:
Здесь можно увидеть значения сбалансированных бинарных и трехклассных случаев (0,69 и 1,1).
ВЫВОД
Логлосс 0,69 может быть хорошим в мультиклассовой задаче и очень плохим в случае двоичного смещения.
В зависимости от вашего случая, вам лучше рассчитать исходный уровень проблемы, чтобы проверить смысл вашего прогноза.
В предвзятых случаях я понимаю, что у logloss та же проблема, что и у функций точности и других потерь: она обеспечивает только глобальное измерение вашей производительности. Так что вам лучше дополнить свое понимание метриками, ориентированными на классы меньшинства (вспоминание и точность), или, возможно, вообще не использовать logloss.
источник
Так что это на самом деле сложнее, чем реакция Firebugs, и все зависит от внутренней вариации процесса, который вы пытаетесь предсказать.
Когда я говорю «вариация», я имею в виду «если событие должно было повториться в тех же самых условиях, известных и неизвестных, какова вероятность того, что тот же результат произойдет снова».
Идеальный предсказатель будет иметь потери, для вероятности P: потеря = P ln P + (1-P) ln (1-P)
Если вы пытаетесь что-то предсказать, где, в худшем случае, некоторые события будут предсказаны с результатом 50/50, то при интегрировании и взятии среднего значения средняя потеря будет: L = 0,5
Если то, что вы пытаетесь предсказать, является более повторяемым, потеря идеальной модели ниже. Так, например, скажем, с достаточной информацией, идеальная модель была способна предсказать исход события, когда из всех возможных событий худшее, что можно было бы сказать, это «это событие произойдет с вероятностью 90%», тогда средняя потеря будет L = 0,18. ,
Существует также разница, если распределение вероятностей не является равномерным.
Таким образом, в ответ на ваш вопрос ответ «это зависит от характера того, что вы пытаетесь предсказать»
источник
Я бы сказал, что стандартный ответ по статистике - это сравнение с моделью только для перехвата. (это обрабатывает несбалансированные классы, упомянутые в других ответах) cf mcFadden's pseudo r ^ 2. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/
Теперь проблема в том, каково максимальное значение. в основном проблема заключается в том, что вероятность события не определена вне модели событий. я бы посоветовал вам взять свои тестовые данные и агрегировать их до определенного уровня, чтобы получить оценку вероятности. затем рассчитайте логлосс этой оценки.
Например, вы прогнозируете рейтинг кликов на основе (web_site, ad_id, consumer_id), затем агрегируете клики, показы, например, на уровне web_site, и рассчитываете CTR в наборе тестов для каждого веб-сайта. затем рассчитайте log_loss для вашего тестового набора данных, используя эти тестовые показатели кликов в качестве прогнозов. Тогда это оптимальный логлосс в вашем тестовом наборе для модели, использующей только идентификаторы веб-сайтов . Проблема в том, что мы можем сделать эту потерю настолько малой, насколько захотим, просто добавив больше функций, пока каждая запись не будет идентифицирована однозначно.
источник