Что считается хорошей потерей журнала?

16

Я пытаюсь лучше понять потерю журналов и как это работает, но я не могу найти одну вещь - поместить число потерь журналов в какой-то контекст. Если у моей модели потеря журнала 0,5, это хорошо? Что считается хорошим и плохим счетом? Как меняются эти пороги?

user1923975
источник
Эта тема актуальна здесь: stats.stackexchange.com/q/414349/121522
mkt - Восстановить Монику

Ответы:

19

Логлосс - это просто где p - просто вероятность, приписанная реальному классу.L(пя)знак равно-журнал(пя)п

Таким образом, - это хорошо, мы приписали вероятность 1 правильному классу, а L ( p ) = + - плохо, потому что мы приписали вероятность 0 фактическому классу.L(п)знак равно01L(п)знак равно+0

Итак, отвечая на ваш вопрос, означает, что в среднем вы приписали правильному классу вероятность p 0,61 по выборкам.L(п)знак равно0,5п0,61

Теперь решение о том, достаточно ли это хорошо, зависит от приложения, и это зависит от аргумента.

поджигатель
источник
9

Как и любая метрика, хорошая метрика лучше, чем «глупая», случайная догадка, если вам придется угадывать без информации о наблюдениях. Это называется моделью только для перехвата в статистике.

Эта «тупая» догадка зависит от 2 факторов:

  1. количество классов
  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)и получаем следующую таблицу:

бинарная классификация logloss, сбалансированная - таблица

Таким образом, когда классы очень несбалансированны (распространенность <2%), лог-лог 0,1 может быть очень плохим! Например, точность 98% была бы плохой в этом случае. Так что, возможно, Logloss не будет лучшим показателем для использования

logloss двоичной классификации, несбалансированный - диаграмма

б. Трехклассный корпус

«Тупой» -логлосс в зависимости от распространенности - случай трех классов:

Логлосс классификации трех классов, несбалансированный

Здесь можно увидеть значения сбалансированных бинарных и трехклассных случаев (0,69 и 1,1).

ВЫВОД

Логлосс 0,69 может быть хорошим в мультиклассовой задаче и очень плохим в случае двоичного смещения.

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

В предвзятых случаях я понимаю, что у logloss та же проблема, что и у функций точности и других потерь: она обеспечивает только глобальное измерение вашей производительности. Так что вам лучше дополнить свое понимание метриками, ориентированными на классы меньшинства (вспоминание и точность), или, возможно, вообще не использовать logloss.

Fed Zee
источник
(+1) Добро пожаловать в резюме! Вы можете использовать математический набор текста в своем посте. Дополнительная информация: math.meta.stackexchange.com/questions/5020/…
Sycorax сообщает, что восстановит Монику
Лучше, чем мой ответ, +1
Firebug
5

Так что это на самом деле сложнее, чем реакция Firebugs, и все зависит от внутренней вариации процесса, который вы пытаетесь предсказать.

Когда я говорю «вариация», я имею в виду «если событие должно было повториться в тех же самых условиях, известных и неизвестных, какова вероятность того, что тот же результат произойдет снова».

Идеальный предсказатель будет иметь потери, для вероятности P: потеря = P ln P + (1-P) ln (1-P)

Если вы пытаетесь что-то предсказать, где, в худшем случае, некоторые события будут предсказаны с результатом 50/50, то при интегрировании и взятии среднего значения средняя потеря будет: L = 0,5

Если то, что вы пытаетесь предсказать, является более повторяемым, потеря идеальной модели ниже. Так, например, скажем, с достаточной информацией, идеальная модель была способна предсказать исход события, когда из всех возможных событий худшее, что можно было бы сказать, это «это событие произойдет с вероятностью 90%», тогда средняя потеря будет L = 0,18. ,

Существует также разница, если распределение вероятностей не является равномерным.

Таким образом, в ответ на ваш вопрос ответ «это зависит от характера того, что вы пытаетесь предсказать»

Симеон
источник
Это хорошо известно L0,693неинформативная двоичная логарифмическая потеря ( т. е. случайное угадывание). Я не очень следую вашим расчетам, вы предполагаете, что равномерное распределениепили что-то типа того?
Firebug
Представьте, что у вас есть система, в которой вы знаете всю возможную информацию о ее текущем состоянии. Представьте, что система имеет некоторый внутренний уровень случайности, так что, учитывая все параметры, касающиеся ее состояния, результат может быть другим. Скажем, например, в этой системе он может составлять 0-10%. Идеальная модель (то есть та, в которой ее производительность ограничена только внутренним изменением) получитL0,18, Для сравнения система, которая колеблется от 0 до 100%, будет в лучшем видеL0,5,
Симеон
1
Я не согласен с твоим худшим случаем. Я просто говорю, что «хороший результат» зависит от системы. 0.4 может указывать хороший результат для некоторых систем (например, последний пример) или плохой (для первой).
Симеон
0

Я бы сказал, что стандартный ответ по статистике - это сравнение с моделью только для перехвата. (это обрабатывает несбалансированные классы, упомянутые в других ответах) 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 для вашего тестового набора данных, используя эти тестовые показатели кликов в качестве прогнозов. Тогда это оптимальный логлосс в вашем тестовом наборе для модели, использующей только идентификаторы веб-сайтов . Проблема в том, что мы можем сделать эту потерю настолько малой, насколько захотим, просто добавив больше функций, пока каждая запись не будет идентифицирована однозначно.

seanv507
источник