Для построение прогнозов спроса, нагрузки, трафика нужно уметь работать с временными рядами. В этом посте разберем особенности работы с ними, инструменты и алгоритмы с которых стоит начать.
🔹Временные ряды бывают одномерные и многомерные. Одномерные ряды это ряды состоящие из временной шкалы и одной величины, у многомерных рядов измеряемых величин несколько.
🔹Временные ряды бывают стационарными и нестационарными. Стационарный временной ряд, это ряд, свойства которого не зависят от времени наблюдения. Ряд в котором присутствует тренд или сезонность является нестационарным.
ПРЕДОБРАБОТКА ДАННЫХ
Во первых, очевидно, данные во временных рядах не стоит не в коем случае перемешивать, кросс-валидация также проводится особым образом. Нужно избавиться от аномалий, проверить ряд на стационарность и наличие трендов, так как от этого зависят методы прогнозирования.
МЕТОДЫ ДЛЯ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ
Самые простые и наивные подходы это всевозможные усреднения и сглаживания - просто среднее, экспоненциальное сглаживание (учитывает сезонность), модель Брауна, модель Хольта-Винтерса. Далее идут авторегрессионные модели. Модель ARIMA (Autoregressive Integrated Moving Average) - умеет работать с нестационарными временными рядами, но не умеет работать с сезонными данными, для работы с сезонными данными существует SARIMA (Season Autoregressive Integrated Moving Average). И наконец, можно пустить в бой нейронные сети, попробовав предсказание с помощью LSTM. Также некоторые используют классические ml модели, предварительно извлекая из временного ряда фичи и рассматривают задачу как задачу регрессии.
🗓Модуль, который может пригодиться - statsmodels
🔹Временные ряды бывают одномерные и многомерные. Одномерные ряды это ряды состоящие из временной шкалы и одной величины, у многомерных рядов измеряемых величин несколько.
🔹Временные ряды бывают стационарными и нестационарными. Стационарный временной ряд, это ряд, свойства которого не зависят от времени наблюдения. Ряд в котором присутствует тренд или сезонность является нестационарным.
ПРЕДОБРАБОТКА ДАННЫХ
Во первых, очевидно, данные во временных рядах не стоит не в коем случае перемешивать, кросс-валидация также проводится особым образом. Нужно избавиться от аномалий, проверить ряд на стационарность и наличие трендов, так как от этого зависят методы прогнозирования.
МЕТОДЫ ДЛЯ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ
Самые простые и наивные подходы это всевозможные усреднения и сглаживания - просто среднее, экспоненциальное сглаживание (учитывает сезонность), модель Брауна, модель Хольта-Винтерса. Далее идут авторегрессионные модели. Модель ARIMA (Autoregressive Integrated Moving Average) - умеет работать с нестационарными временными рядами, но не умеет работать с сезонными данными, для работы с сезонными данными существует SARIMA (Season Autoregressive Integrated Moving Average). И наконец, можно пустить в бой нейронные сети, попробовав предсказание с помощью LSTM. Также некоторые используют классические ml модели, предварительно извлекая из временного ряда фичи и рассматривают задачу как задачу регрессии.
🗓Модуль, который может пригодиться - statsmodels