Прогнозы логистической регрессии должны быть объективными. То есть:
"среднее значение прогнозов" должно равняться "среднему значению наблюдений"
Смещение прогноза — это величина, которая измеряет, насколько далеко друг от друга находятся эти два средних значения. То есть:
Существенное ненулевое смещение предсказания говорит вам о том, что где-то в вашей модели есть ошибка, поскольку это указывает на то, что модель ошибается в отношении того, как часто встречаются положительные метки.
Например, предположим, что мы знаем, что в среднем 1% всех электронных писем является спамом. Если мы вообще ничего не знаем о данном электронном письме, мы должны предсказать, что это спам с вероятностью 1%. Точно так же хорошая модель спама должна предсказывать, что электронные письма в среднем с вероятностью 1% являются спамом. (Другими словами, если мы усредним прогнозируемые вероятности того, что каждое отдельное электронное письмо является спамом, результат должен быть равен 1%.) Если вместо этого средний прогноз модели составляет 20% вероятности того, что он является спамом, мы можем сделать вывод, что она демонстрирует систематическую ошибку прогноза.
Возможными основными причинами смещения прогноза являются:
- Неполный набор функций
- Зашумленный набор данных
- Глючный трубопровод
- Смещенная обучающая выборка
- Слишком сильная регуляризация
У вас может возникнуть соблазн исправить погрешность прогноза путем постобработки изученной модели, то есть путем добавления слоя калибровки , который корректирует выходные данные вашей модели, чтобы уменьшить погрешность прогноза. Например, если ваша модель имеет смещение +3%, вы можете добавить калибровочный слой, который снижает средний прогноз на 3%. Однако добавление калибровочного слоя — плохая идея по следующим причинам:
- Вы устраняете симптом, а не причину.
- Вы построили более хрупкую систему, которую теперь нужно поддерживать в актуальном состоянии.
По возможности избегайте калибровочных слоев. Проекты, использующие калибровочные слои, как правило, становятся зависимыми от них — используют калибровочные слои, чтобы исправить все ошибки своей модели. В конечном счете, поддержка калибровочных слоев может превратиться в кошмар.
Сегментирование и смещение прогноза
Логистическая регрессия предсказывает значение от 0 до 1. Однако все помеченные примеры имеют либо ровно 0 (что означает, например, «не спам»), либо ровно 1 (что означает, например, «спам»). Следовательно, при изучении систематической ошибки предсказания вы не можете точно определить предсказательную ошибку, основываясь только на одном примере; вы должны изучить предвзятость предсказания на «корзине» примеров. То есть смещение прогноза для логистической регрессии имеет смысл только при группировании достаточного количества примеров, чтобы можно было сравнить прогнозируемое значение (например, 0,392) с наблюдаемыми значениями (например, 0,394).
Формировать ведра можно следующими способами:
- Линейное разбиение целевых прогнозов.
- Формирование квантилей.
Рассмотрим следующий калибровочный график для конкретной модели. Каждая точка представляет собой корзину из 1000 значений. Оси имеют следующие значения:
- Ось X представляет среднее значение, предсказанное моделью для этого сегмента.
- Ось Y представляет фактическое среднее значение в наборе данных для этого сегмента.
Обе оси представляют собой логарифмические шкалы.
Рисунок 8. Кривая смещения прогноза (логарифмическая шкала)
Почему предсказания такие плохие только для части модели? Вот несколько возможностей:
- Обучающий набор неадекватно представляет определенные подмножества пространства данных.
- Некоторые подмножества набора данных более зашумлены, чем другие.
- Модель чрезмерно упорядочена . (Рассмотрите возможность уменьшения значения lambda .)