Прогнозирование
Материал из MachineLearning.
(Классификация подходов и валидация моделей, дополнение) |
(Метрики качества и примеры (из первоначальной статьи), дополнение) |
||
| Строка 64: | Строка 64: | ||
При наличии лагов в признаках (например, если для прогноза на завтра нужен лаг недельной давности) между обучающей и тестовой выборками закладывается '''зазор''' (англ. ''gap''), чтобы исключить любое неявное проникновение информации. | При наличии лагов в признаках (например, если для прогноза на завтра нужен лаг недельной давности) между обучающей и тестовой выборками закладывается '''зазор''' (англ. ''gap''), чтобы исключить любое неявное проникновение информации. | ||
| + | |||
| + | == Метрики качества прогнозирования == | ||
| + | |||
| + | Классические метрики регрессии (MSE, MAE) не всегда удобны в прогнозировании, так как они зависят от масштаба ряда и не позволяют сравнивать качество моделей на разных товарах или процессах. Для этого используются специфичные метрики: | ||
| + | |||
| + | === MAPE (Mean Absolute Percentage Error) === | ||
| + | Средняя абсолютная процентная ошибка измеряет отклонение в процентах от истинных значений: | ||
| + | <tex>\text{MAPE} = \frac{100\%}{n} \sum_{t=1}^n \left| \frac{y_t - \hat{y}_t}{y_t} \right|</tex> | ||
| + | * '''Проблема''': если истинное значение <tex>y_t = 0</tex>, метрика уходит в бесконечность (деление на ноль). Кроме того, она асимметрична: сильнее штрафует за прогнозы, превышающие факт (перепрогноз), чем за заниженные прогнозы. | ||
| + | |||
| + | === SMAPE (Symmetric Mean Absolute Percentage Error) === | ||
| + | Симметричная средняя абсолютная процентная ошибка пытается исправить асимметрию MAPE, добавляя прогноз в знаменатель: | ||
| + | <tex>\text{SMAPE} = \frac{100\%}{n} \sum_{t=1}^n \frac{|y_t - \hat{y}_t|}{(|y_t| + |\hat{y}_t|)/2}</tex> | ||
| + | * '''Проблема''': значение метрики нестабильно, когда и факт, и прогноз близки к нулю. | ||
| + | |||
| + | === MASE (Mean Absolute Scaled Error) === | ||
| + | Средняя абсолютная масштабированная ошибка сравнивает среднюю ошибку модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на завтра является сегодняшнее значение): | ||
| + | <tex>\text{MASE} = \frac{\frac{1}{n} \sum_{t=1}^n |y_t - \hat{y}_t|}{\frac{1}{T-1} \sum_{i=2}^T |y_i - y_{i-1}|}</tex> | ||
| + | где <tex>T</tex> — длина обучающей выборки. | ||
| + | * '''Интерпретация''': если <tex>\text{MASE} < 1</tex>, модель работает лучше, чем наивный прогноз. Если <tex>\text{MASE} > 1</tex>, то алгоритм хуже простейшей константной стратегии. Метрика устойчива к нулевым значениям и инвариантна к масштабу. | ||
| + | |||
| + | == Примеры прикладных задач прогнозирования == | ||
| + | |||
| + | В рамках Ресурса представлены следующие примеры реализации и анализа прогнозных моделей: | ||
| + | * [[Математический прогноз даты сильных землетрясений]] — применение статистических методов и анализа временных последовательностей в геофизике. | ||
| + | * [[Прогнозирование количества телефонных звонков клиентов телекоммуникационной компании]] — пример классического краткосрочного бизнес-прогнозирования для оптимизации нагрузки колл-центров. | ||
Версия 20:05, 15 июня 2026
| | Статья расширена с использованием LLM Gemini 3.5 Flash и проверена участником Vsevolod Peretiatko 23:58, 15 июня 2026 (MSD) |
Прогнозирование (англ. forecasting) — область машинного обучения и прикладной статистики, задача которой заключается в предсказании будущих значений целевого процесса или величины на основе исторических данных, а также доступной сопутствующей информации.
В контексте анализа данных прогнозирование чаще всего сводится к анализу временных рядов (англ. time series forecasting). Главное отличие задачи прогнозирования от классической задачи регрессии заключается в нарушении предположения о независимости и одинаковой распределённости наблюдений (i.i.d.): данные в прогнозировании упорядочены во времени и обладают внутренней зависимостью (автокорреляцией).
Содержание |
Математическая постановка задачи
Пусть задан случайный процесс, наблюдаемый в дискретные моменты времени . Значение целевой переменной в момент времени
обозначим как
.
Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов , которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления).
Задача прогнозирования заключается в построении модели (алгоритма) , которая по известной предыстории длины
предсказывает значения целевой переменной на
шагов вперёд. Величина
называется горизонтом прогнозирования (англ. forecasting horizon).
Точечный прогноз
Для фиксированного момента времени (настоящее время) точечный прогноз на момент времени
вычисляется как:
В зависимости от доступности экзогенных факторов на шаге , их значения могут быть либо известны заранее (например, календарные признаки: день недели, праздники), либо сами являться результатами других прогнозных моделей.
Интервальный и вероятностный прогноз
Помимо точечного значения , в современных задачах машинного обучения часто требуется оценить неопределённость.
- Интервальный прогноз задаёт границы
, в которые истинное значение попадёт с заданной вероятностью
.
- Вероятностный прогноз (англ. probabilistic forecasting) строит оценку плотности распределения
.
Обучение модели заключается в минимизации ожидаемого риска (эмпирического функционала качества) на обучающей выборке по заданной функции потерь
.
Классификация подходов к прогнозированию
Методы прогнозирования временных рядов можно разделить на три парадигмы, каждая из которых эффективна в своём классе задач.
Классические статистические методы
Основаны на предположении о наличии фиксированной математической структуры в ряду (тренд, сезонность, циклы) и стационарности случайного процесса (или возможности свести его к стационарному через разности).
- Экспоненциальное сглаживание (англ. exponential smoothing, ETS): модели, в которых прогноз формируется как взвешенное среднее прошлых наблюдений, где веса затухают экспоненциально с течением времени (например, метод Хольта-Винтерса).
- Интегрированная модель авторегрессии — скользящего среднего (англ. Autoregressive Integrated Moving Average, ARIMA): семейство моделей, где текущее значение ряда линейно зависит от его собственных предыдущих значений (авторегрессия,
) и от прошлых ошибок прогноза (скользящее среднее,
). Её расширение SARIMA учитывает сезонные компоненты.
Эти методы эффективны для коротких и единичных временных рядов, обладают высокой интерпретируемостью, но плохо адаптируются к сложным нелинейным зависимостям и большим объёмам внешних данных.
Классическое машинное обучение
Переход от анализа временного ряда к стандартной задаче обучения с учителем осуществляется с помощью метода скользящего окна (англ. sliding window). Непрерывный ряд разбивается на объекты, где признаками (англ. features) выступают прошлые значения ряда (лаги, ), а также агрегированные статистики (скользящее среднее, стандартное отклонение за период).
- Градиентный бустинг (LightGBM, XGBoost, CatBoost) и Случайный лес (англ. Random Forest): на сегодняшний день являются индустриальным стандартом для табличных данных и прогнозирования регулярных бизнес-метрик (например, продаж товаров).
Они отлично работают с тысячами разнородных рядов одновременно, легко интегрируют экзогенные факторы (цены, промо-акции, погоду) и нелинейные связи, однако требуют ручного конструирования признаков (англ. feature engineering).
Глубокое обучение
Использует специализированные нейросетевые архитектуры для автоматического извлечения временных закономерностей:
- Рекуррентные нейронные сети (LSTM, GRU): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах.
- Временные свёрточные сети (англ. Temporal Convolutional Networks, TCN): применяют причинные (казуальные) свёртки, исключающие заглядывание в будущее.
- Трансформаторные архитектуры и Foundation-модели (Temporal Fusion Transformer, PatchTST, Chronos): адаптируют механизм внимания (англ. attention) для захвата долгосрочных зависимостей. Они способны обучаться на гигантских разнородных датасетах (англ. cross-series learning) и делать прогнозы для новых рядов «из коробки» (англ. zero-shot forecasting).
Валидация моделей прогнозирования
При валидации моделей прогнозирования категорически запрещено использовать стандартный случайный скользящий контроль (K-fold cross-validation), так как случайное перемешивание данных приводит к утечке данных из будущего (англ. data leakage). Модель обучается на информации, которая в реальных условиях ещё не была бы известна, что приводит к оптимистично заниженной ошибке на валидации и провалу модели в продакшене.
На практике применяются следующие схемы:
Оценка на отложенной выборке вне периода обучения
- Out-of-sample (OOS): оценка качества модели на данных, которые не использовались при настройке параметров модели. Ряд разбивается на две хронологические части: прошлое (обучение) и будущее (тест).
- Out-of-time (OOT): частный и более строгий случай OOS в машинном обучении, когда тестовый набор данных сдвинут относительно обучающего на фиксированный временной интервал или представляет собой принципиально другой временно́й контекст (например, модель обучалась на стабильном периоде, а тестируется во время резкого изменения макроэкономики).
Блокированный скользящий контроль
Для полноценного кросс-валидационного оценивания используют методы, сохраняющие временную структуру (англ. Time Series Cross-Validation).
- Схема с расширяющимся окном (англ. Expanding Window): на первой итерации модель обучается на блоке длины
и тестируется на
шагах. На следующей итерации тестовый блок включается в обучающую выборку, и модель переобучается на блоке длины
.
- Схема с движущимся окном (англ. Rolling Window): размер обучающей выборки остаётся фиксированным (например, всегда ровно один год данных), а само окно обучения сдвигается вперёд на величину
на каждом шаге.
При наличии лагов в признаках (например, если для прогноза на завтра нужен лаг недельной давности) между обучающей и тестовой выборками закладывается зазор (англ. gap), чтобы исключить любое неявное проникновение информации.
Метрики качества прогнозирования
Классические метрики регрессии (MSE, MAE) не всегда удобны в прогнозировании, так как они зависят от масштаба ряда и не позволяют сравнивать качество моделей на разных товарах или процессах. Для этого используются специфичные метрики:
MAPE (Mean Absolute Percentage Error)
Средняя абсолютная процентная ошибка измеряет отклонение в процентах от истинных значений:
- Проблема: если истинное значение
, метрика уходит в бесконечность (деление на ноль). Кроме того, она асимметрична: сильнее штрафует за прогнозы, превышающие факт (перепрогноз), чем за заниженные прогнозы.
SMAPE (Symmetric Mean Absolute Percentage Error)
Симметричная средняя абсолютная процентная ошибка пытается исправить асимметрию MAPE, добавляя прогноз в знаменатель:
- Проблема: значение метрики нестабильно, когда и факт, и прогноз близки к нулю.
MASE (Mean Absolute Scaled Error)
Средняя абсолютная масштабированная ошибка сравнивает среднюю ошибку модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на завтра является сегодняшнее значение):
где
— длина обучающей выборки.
- Интерпретация: если
, модель работает лучше, чем наивный прогноз. Если
, то алгоритм хуже простейшей константной стратегии. Метрика устойчива к нулевым значениям и инвариантна к масштабу.
Примеры прикладных задач прогнозирования
В рамках Ресурса представлены следующие примеры реализации и анализа прогнозных моделей:
- Математический прогноз даты сильных землетрясений — применение статистических методов и анализа временных последовательностей в геофизике.
- Прогнозирование количества телефонных звонков клиентов телекоммуникационной компании — пример классического краткосрочного бизнес-прогнозирования для оптимизации нагрузки колл-центров.

