Формулировка многомерного многокрокового прогнозирования временных рядов с использованием традиционного машинного обучения, НЕ глубокого обучения.

Вопрос или проблема

Как представить многомерные многопроцессные данные, используя традиционное машинное обучение? Я знаю, это кажется проблемой, подходящей для RNN/LSTM, но мне интересно, каковы альтернативные решения в машинном обучении.

Пример.

время, признак_1, признак_2, признак_3
1      25         150        0.7       
2      25.3       147        1.1        
3      25.5       145        0.8
...
10     26.7       165        1.2

Теперь я хочу спрогнозировать признак_1 в момент времени 10, используя первые 3 временных шага всех признаков, и получить такой набор данных

признак_1,      признак_2,      признак_3,       цель
[25,25.3,25.5]   [150,147,145]   [0.7,1.1,0.8]    26.7

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

Ответ или решение

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

Теория:

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

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

Пример:

Рассмотрим приведённый пример данных:

время, переменная_1, переменная_2, переменная_3  
1     25         150        0.7       
2     25.3       147        1.1        
3     25.5       145        0.8

Чтобы сформировать табличные данные для машинного обучения, вы можете собрать переменные в виде векторов признаков и целевой переменной следующим образом:

переменная_1,       переменная_2,       переменная_3,       цель
[25,25.3,25.5]   [150,147,145]    [0.7,1.1,0.8]    26.7

Данный подход известен как "сдвиговое окно" (sliding window) или метод "искушенного" использования лагов (shifted lag), где использование предыдущих значений переменных позволяет модели "увидеть" временную структуру данных.

Применение:

  1. Подготовка данных:

    • Временные окна: Необходимо создать временные окна фиксированного размера из оригинального временного ряда. Например, если у вас три шага, как в примере, то размер окна будет равен трём.
    • Сдвиги и лаги: Для каждой переменной создаются сдвиги, которые служат входными данными модели. Все переменные рассматриваются одновременно, что позволяет учитывать взаимосвязи между ними.
  2. Выбор модели:

    • Линейная регрессия: Подходит для простых случаев, когда взаимосвязи между переменными линейны.
    • Деревья решений и случайные леса: Эти методы полезны для моделирования нелинейных зависимостей и учета взаимодействий между переменными.
    • Бустинговые методы: XGBoost, LightGBM или CatBoost могут предложить более точные прогнозы за счет своей способности находить сложные нелинейные зависимости и оптимизации прогноза.
  3. Обучение и валидация:

    • Кросс-валидация по времени: Разделение данных на обучающие и тестовые выборки необходимо проводить с учетом временной последовательности данных.
    • Настройка гиперпараметров: Использовать методы оптимизации, такие как GridSearchCV или RandomizedSearchCV для настройки гиперпараметров модели.
  4. Оценка модели:

    • Метрики точности: Использовать метрики, такие как средняя абсолютная ошибка (MAE), среднеквадратичное отклонение (RMSE) и коэффициент детерминации (R²), для оценки качества прогноза модели.

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

Оцените материал
Добавить комментарий

Капча загружается...