Классификация: предвзятость прогноза

Прогнозы логистической регрессии должны быть объективными. То есть:

"среднее значение прогнозов" должно равняться "среднему значению наблюдений"

Смещение прогноза — это величина, которая измеряет, насколько далеко друг от друга находятся эти два средних значения. То есть:

$$\text{prediction bias} = \text{average of predictions} - \text{average of labels in data set}$$

Существенное ненулевое смещение предсказания говорит вам о том, что где-то в вашей модели есть ошибка, поскольку это указывает на то, что модель ошибается в отношении того, как часто встречаются положительные метки.

Например, предположим, что мы знаем, что в среднем 1% всех электронных писем является спамом. Если мы вообще ничего не знаем о данном электронном письме, мы должны предсказать, что это спам с вероятностью 1%. Точно так же хорошая модель спама должна предсказывать, что электронные письма в среднем с вероятностью 1% являются спамом. (Другими словами, если мы усредним прогнозируемые вероятности того, что каждое отдельное электронное письмо является спамом, результат должен быть равен 1%.) Если вместо этого средний прогноз модели составляет 20% вероятности того, что он является спамом, мы можем сделать вывод, что она демонстрирует систематическую ошибку прогноза.

Возможными основными причинами смещения прогноза являются:

  • Неполный набор функций
  • Зашумленный набор данных
  • Глючный трубопровод
  • Смещенная обучающая выборка
  • Слишком сильная регуляризация

У вас может возникнуть соблазн исправить погрешность прогноза путем постобработки изученной модели, то есть путем добавления слоя калибровки , который корректирует выходные данные вашей модели, чтобы уменьшить погрешность прогноза. Например, если ваша модель имеет смещение +3%, вы можете добавить калибровочный слой, который снижает средний прогноз на 3%. Однако добавление калибровочного слоя — плохая идея по следующим причинам:

  • Вы устраняете симптом, а не причину.
  • Вы построили более хрупкую систему, которую теперь нужно поддерживать в актуальном состоянии.

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

Сегментирование и смещение прогноза

Логистическая регрессия предсказывает значение от 0 до 1. Однако все помеченные примеры имеют либо ровно 0 (что означает, например, «не спам»), либо ровно 1 (что означает, например, «спам»). Следовательно, при изучении систематической ошибки предсказания вы не можете точно определить предсказательную ошибку, основываясь только на одном примере; вы должны изучить предвзятость предсказания на «корзине» примеров. То есть смещение прогноза для логистической регрессии имеет смысл только при группировании достаточного количества примеров, чтобы можно было сравнить прогнозируемое значение (например, 0,392) с наблюдаемыми значениями (например, 0,394).

Формировать ведра можно следующими способами:

  • Линейное разбиение целевых прогнозов.
  • Формирование квантилей.

Рассмотрим следующий калибровочный график для конкретной модели. Каждая точка представляет собой корзину из 1000 значений. Оси имеют следующие значения:

  • Ось X представляет среднее значение, предсказанное моделью для этого сегмента.
  • Ось Y представляет фактическое среднее значение в наборе данных для этого сегмента.

Обе оси представляют собой логарифмические шкалы.

Ось X — прогноз; ось Y — метка. Для средних и высоких значений предсказания смещение предсказания незначительно. Для низких значений предсказания смещение предсказания относительно велико.

Рисунок 8. Кривая смещения прогноза (логарифмическая шкала)

Почему предсказания такие плохие только для части модели? Вот несколько возможностей:

  • Обучающий набор неадекватно представляет определенные подмножества пространства данных.
  • Некоторые подмножества набора данных более зашумлены, чем другие.
  • Модель чрезмерно упорядочена . (Рассмотрите возможность уменьшения значения lambda .)