Математические модели в инженерии
Использование деревьев решений для прогнозирования временных рядов: проблемы и решения
Table of Contents
Введение в деревья решений для прогнозирования временных рядов
Деревья решений — это класс контролируемых алгоритмов машинного обучения, которые разделяют пространство функций на регионы и делают прогнозы на основе простых правил принятия решений. Их интерпретируемость, простота реализации и способность обрабатывать как числовые, так и категориальные данные сделали их основным продуктом во многих задачах прогнозного моделирования. В последние годы практикующие специалисты начали применять деревья решений — и их варианты ансамбля — к прогнозированию временных рядов, где цель состоит в том, чтобы предсказать будущие значения на основе прошлых наблюдений. Хотя подход является многообещающим, он требует тщательной адаптации, поскольку данные временных рядов нарушают ключевые предположения, на которые опираются традиционные модели деревьев решений, и в этой статье рассматриваются конкретные проблемы использования деревьев решений для прогнозирования временных рядов и предоставляют действенные решения и передовые методы для их преодоления.
Данные временных рядов определяются их последовательным порядком, временными зависимостями и часто нестационарным поведением. Стандартные деревья решений рассматривают каждый экземпляр как независимый и одинаково распределенный (i.i.d.), предположение, которое не выполняется, когда наблюдения автокоррелированы или когда тенденции и сезонность меняются с течением времени. Без надлежащей обработки дерево решений может не захватить основную временную динамику, что приводит к плохой точности прогноза. Однако при соответствующей инженерии функций, преобразованиях данных и методах ансамбля деревья решений могут стать конкурентным инструментом прогнозирования, который остается более интерпретируемым, чем модели глубокого обучения с черным ящиком.
Эта статья организована в три основных раздела. Во-первых, мы подробно описываем основные проблемы, уникальные для прогнозирования временных рядов с деревьями решений. Далее мы представляем комплексные решения и лучшие практики, охватывающие проектирование функций, обработку стационарности, методы ансамбля и стратегии проверки. Наконец, мы предлагаем заключительные замечания о роли деревьев решений в современных рабочих процессах прогнозирования и предоставляем внешние ресурсы для дальнейшего изучения.
Основные проблемы применения деревьев решений к данным временных рядов
Для эффективного использования деревьев решений для прогнозирования временных рядов необходимо признать и устранить несколько фундаментальных препятствий. Эти проблемы обусловлены характером как данных, так и алгоритма.
Временные зависимости и автокорреляция
Самая значительная проблема заключается в том, что деревья решений по умолчанию не имеют встроенного механизма для моделирования временных зависимостей. В стандартном дереве решений каждый ряд данных считается независимым. Но во временных рядах значение во время t часто коррелирует со значениями при t-1, t-2 и т. д. Дерево, которое видит только одновременные признаки, будет пропускать эти автокорреляции. Например, предсказание температуры завтрашнего дня без обеспечения вчерашней температуры почти невозможно. Деревья решений могут изучать эти шаблоны только в том случае, если соответствующие отстающие значения явно включены в качестве функций, что переносит нагрузку с алгоритма на практикующего.
Нестационарность и концептуальный дрейф
Данные временных рядов часто демонстрируют нестационарность: среднее, дисперсия или автокорреляция структур со временем меняются. Цены акций, экономические показатели и погодные условия — все показывают тенденции, сезонность или внезапные сдвиги. Дерево решений, обученное историческим данным, может захватывать шаблоны, которые в будущем становятся недействительными. Поскольку деревья создают жесткие границы решений на основе разделения функций, они особенно чувствительны к изменениям в базовом распределении данных. В результате модели могут быстро ухудшаться, если не переобучаться или адаптироваться, явление, известное как дрейф концепции.
Переобучение шумным или ограниченным данным
Деревья решений известны своей тенденцией к переоборудованию, особенно когда они растут глубоко без ограничений. Временные ряды часто содержат шум, выбросы и нерегулярные циклы. Глубокое дерево может делиться на ложные шаблоны, которые кажутся значительными в тренировочном наборе, но не обобщают. Последовательность временных рядов усугубляет этот риск, потому что традиционные случайные интервалы поезда / теста недействительны; если дерево запоминает шум из прошлого, оно плохо работает с будущими невидимыми данными. Переобучение дополнительно усиливается, когда набор данных мал, что характерно для многих практических проблем прогнозирования (например, прогнозирование продаж только на два года ежемесячных данных).
Особенность инженерной сложности
В отличие от моделей, предназначенных для временных рядов (например, ARIMA, Exponential Smoothing), деревья решений требуют, чтобы предиктор вручную создавал функции, которые захватывают временные паттерны. Выбор соответствующих длин отставания, размеров окон для статистики прокатки и внешних регрессоров требует экспертизы домена и значительных экспериментов. Слишком мало отставаний и модель пропускает важные зависимости; слишком много отставаний и модель становится склонной к переоборудованию и проклятию размерности. Кроме того, кодирование циклических функций, таких как время дня или дня недели для сезонных паттернов, добавляет еще один уровень сложности.
Интерпретируемость vs. Производительность
Одно из главных преимуществ одного дерева решений — интерпретируемость — может быть потеряно при использовании сложных ансамблей, таких как случайные леса или повышение градиента. В то время как одно мелкое дерево предлагает четкие правила принятия решений, оно может не достичь высокой точности прогнозирования. Глубокие деревья или ансамбли улучшают производительность, но становятся черными ящиками с сотнями деревьев, что затрудняет объяснение того, почему был сделан конкретный прогноз. Практикующие часто сталкиваются с компромиссом между поддержанием интерпретируемости и достижением самых современных результатов.
Решения и лучшие практики для прогнозирования временных рядов деревьев решений
Несмотря на трудности, существует множество стратегий, позволяющих адаптировать деревья решений к эффективным моделям прогнозирования. В следующих разделах подробно описаны проверенные методы, начиная с подготовки данных и заканчивая настройкой и оценкой моделей.
Особенности инженерии для захвата временной структуры
Поскольку деревья решений не могут по своей сути обрабатывать порядок времени, наиболее важным шагом является преобразование временных рядов в контролируемую проблему обучения. Это включает в себя создание матрицы функций, где каждая строка соответствует шагу времени и включает в себя:
- Зарегистрированные значения: Включают y(t-1), y(t-2), ..., y(t-k), где k выбраны на основе анализа автокорреляции (графики ACF/PACF) или знания домена. Для еженедельной сезонности используйте лаги 7, 14, 21 и т.д.
- Статистика пробега окон:] Скользящие средние, стандартные отклонения, мин, макс и квантили над окнами различной длины помогают фиксировать тенденции и волатильность. Например, 7-дневное среднее значение прокрутки кодирует недавний уровень при сглаживании шума.
- Календарь и циклические признаки: Экстракт часов, дня недели, месяца, квартала и праздничных показателей.Закодировать циклические признаки с использованием синусовых и косинусных преобразований для сохранения круговой непрерывности (например, 23:59 и 00:01 должны быть близки).
- Внешние регрессоры: Включают переменные, которые, как известно, влияют на цель, такие как рекламные акции, экономические показатели или данные о погоде. Деревья решений могут обрабатывать недостающие значения, но для целостности временных рядов рекомендуется тщательная вычисление.
- Временные характеристики: Добавьте саму временную метку (например, количество дней с момента начала), чтобы дерево могло моделировать линейные тенденции, хотя нелинейные тенденции лучше улавливаются другими функциями.
Итеративная разработка функций. Используйте идеи домена для гипотезы релевантных функций, затем применяйте важность функций от обученного дерева до обрезания нерелевантных. Используйте инструменты, такие как или для автоматического извлечения, но всегда проверяйте вручную, чтобы избежать утечки данных - никогда не используйте будущую информацию для создания прошлых функций.
Нестационарность через преобразование данных
Когда данные демонстрируют тенденции или сезонность, дифференциация может сделать серию стационарной. Применить дифференциацию первого порядка y'(t) = y(t) - y(t-1) или сезонную дифференциацию (например, y'(t) = y(t) - y(t-7) для еженедельных циклов. Дифференциация устраняет тенденцию и сезонность, позволяя дереву изучать закономерности в изменениях, а не абсолютные значения. Для нестабильности дисперсии используйте логарифмические или коробчато-ксовые преобразования для стабилизации дисперсии.
После преобразования первоначальный прогноз может быть восстановлен путем инвертирования дифференциации. Для скользящих прогнозов необходимо тщательное накопление различий, чтобы избежать распространения ошибок. Альтернативный подход заключается в моделировании серии по уровням, но включает явные тенденции и сезонные особенности, хотя дифференциация часто более надежна для деревьев решений, которые полагаются на пороговые разбиения на основе величины.
Другое решение заключается в использовании ансамблевых методов, таких как Gradient Boosting на разнородных данных, которые, как правило, производят лучшие остаточные вещества. При использовании Random Forest, который не экстраполирует за пределы диапазона данных обучения, дифференциация особенно полезна, потому что она центрирует цель вокруг нуля и снижает риск экстраполяции.
Методы сборки для снижения переобучения и повышения точности
Единичные деревья решений редко используются для прогнозирования в одиночку из-за высокой дисперсии. Методы сборки объединяют несколько деревьев для уменьшения переобучения и повышения прогнозной производительности:
- Случайный лес: Постраивает много деревьев на загрузочных образцах и случайных наборах признаков. Усреднение прогнозов уменьшает дисперсию. Для временных рядов используйте заблокированный бутстрап, который уважает временный порядок (например, движущийся блок-бутстрап) для поддержания структуры автокорреляции. Случайный лес устойчив к шуму и хорошо обрабатывает многомерные пространства функций.
- Gradient Boosting Machines (GBM): Последовательно добавляет деревья для исправления ошибок предыдущих моделей. XGBoost, LightGBM и CatBoost являются популярными реализациями. Они часто превосходят Random Forest по структурированным данным и могут моделировать сложные нелинейные узоры с неглубокими деревьями (глубина 3-6). Однако они требуют тщательной настройки гиперпараметра, чтобы избежать переобучения (скорость обучения, количество оценщиков, подобразец).
- Экстремальные случайные деревья (Extra Trees): Похож на случайный лес, но со случайными пороговыми разломами, что еще больше уменьшает дисперсию.
Ансамбли также предоставляют оценки важности признаков, помогая определить, какие лаги или внешние переменные являются наиболее прогностическими. Используйте значение перестановки или встроенную важность на основе усиления, чтобы направлять выбор признаков и интерпретировать поведение модели.
Серия-время-специальная перекрестная проверка
Стандартная перекрестная валидация k-кратного числа, которая случайным образом перетасовывает данные, недействительна для временных рядов, поскольку она использует будущие данные для прогнозирования прошлого, что приводит к чрезмерно оптимистичной точности.
- Прогулка валидация: Поезд на расширение или скольжение окон прошлых данных и тест на следующем блоке. Например, поезд на 1-12 месяцев, тест на 13 месяцев; затем поезд на 1-13 месяцев, тест на 14 месяцев и т. д. Это имитирует условия прогнозирования реального мира.
- Разделение по времени: Вариант, где тренировочный набор всегда перед тестовым набором, с фиксированным или растущим размером обучения. Scikit-learn's является удобной реализацией.
- Заблокированное перекрестное валидирование временных рядов: Для учета сезонных циклов убедитесь, что каждая валидация включает в себя полные сезонные периоды, чтобы избежать утечки сезонных моделей в складках.
При настройке гиперпараметров используют вложенную перекрестную валидацию: внутренний цикл для поиска гиперпараметров (с использованием данных об обучении в режиме ходьбы вперед) и внешний цикл для оценки производительности. Это обеспечивает объективную оценку ошибок и предотвращает утечку информации от настройки.
Регуляризация и обрезка деревьев
Для контроля над переоборудовкой применяют регуляризацию непосредственно к росту деревьев:
- Ограничить глубину дерева: Ограничить максимальную глубину (например, max глубина = 5) для предотвращения чрезмерно специфических расколов.
- Минимальные образцы на лист: Установить минимальное количество образцов, требуемых в узлах листа (например, min samples leaf=5), чтобы обеспечить возможность обобщения.
- Минимальное уменьшение примесей: Требуется минимальное уменьшение потерь для оправдания раскола.
- Сложная обрезка (CCP): Используйте параметры обрезки (] в scikit-learn) для обрезки ветвей после обучения. Это особенно полезно для деревьев с одним решением.
Для повышения моделей используйте скорость обучения менее 0,1, раннюю остановку на наборе валидации и подобразцовые столбцы и строки. Эти методы в совокупности создают более надежную модель, которая обобщается за период обучения.
Обработка нескольких сезонов
Временные ряды часто демонстрируют несколько сезонных циклов (например, ежедневные, еженедельные, годовые). Деревья решений могут фиксировать сезонность с помощью соответствующего кодирования признаков. Для ежедневных данных с еженедельной сезонностью включают категориальную особенность для дня недели. Для почасовых данных включают час дня и день недели. Однако, когда сезонности взаимодействуют (например, различные будни в зависимости от праздничных периодов), более глубокие деревья могут автоматически моделировать взаимодействия, если присутствуют такие функции, как месяц и день недели.
Для более длительных сезонных периодов (ежегодных), добавление функции «день года» или использование терминов Фурье (сине-косиновые пары с различными периодами) может уменьшить размерность сезонного кодирования. Деревья решений могут разделиться на эти функции, чтобы захватить сезонность. Альтернативно, разложить серию на трендовые, сезонные и остаточные компоненты через разложение STL, а затем смоделировать остаточное с деревом решений. Этот гибридный подход может хорошо работать для серий с сильной детерминированной сезонностью.
Практический рабочий процесс: пошаговый пример
Для иллюстрации концепций рассмотрим прогнозирование суточной потребности в электроэнергии по модели Random Forest. Набор данных содержит почасовые данные за два года с внешними показаниями температуры.
- Подготовка данных: Преобразование в почасовое разрешение, обработка отсутствующих значений (форвардное заполнение) и создание периода проверки (последние 3 месяца).
- Создание характеристик: Функции отставания по спросу (час, день, неделя), температура (час, день), средние значения (24-часовое окно), час дня (син/косин), день недели (одногорячий), месяц (одногорячий) и праздничный показатель.
- Модульная установка: Случайный лес с 200 деревьями, max глубина = 10, min samples leaf = 5 и загрузка с движущимся блоком длиной 24 для сохранения почасовых зависимостей.
- Проверка: Проверка на переход с 1-дневным этапом тестирования и 60-дневным окном обучения. Настройка и с использованием поиска по сетке на внутреннем наборе проверки (первые 18 месяцев).
- Прогнозирование: Рекурсивный многошаговый прогноз: прогноз на один шаг вперед, обновление функций лага с использованием прогнозируемого значения и продолжение. Для прямого многошагового обучения отдельные модели для каждого горизонта.
- Оценка: Сравните прогнозы с фактическими данными с использованием RMSE и MAPE. Остатки участка для проверки оставшейся автокорреляции.
Этот рабочий процесс дает модель, которая обычно превосходит наивные прогнозы по настойчивости и конкурирует с более сложными нейронными сетями, оставаясь интерпретируемой через важность функции.
Сравнение с другими моделями прогнозирования
Ансамбли деревьев решений занимают промежуточное положение в экосистеме прогнозирования. Они более гибкие, чем линейные модели (ARIMA, Exponential Smoothing), потому что они могут моделировать нелинейные отношения и взаимодействия без ручной спецификации. Они менее сложны и быстрее в обучении, чем глубокие нейронные сети (LSTM, Transformers), и они требуют меньшей предварительной обработки данных. С другой стороны, они могут не захватывать очень дальние зависимости, а также LSTM, и они не могут экстраполировать тенденции за пределы диапазона данных обучения (если не различаются). Для многих практических задач бизнес-прогнозирования с умеренными размерами данных и разнообразными функциями, модели на основе деревьев, такие как LightGBM и Random Forest, часто являются наиболее эффективным подходом, в соответствии с такими соревнованиями, как конкурс прогнозирования M5 (]M5 Accuracy on Kaggle .
Для более глубокого сравнения методов временных рядов см. учебник «Прогнозирование: принципы и практика» , который охватывает как классические, так и подходы к машинному обучению. Практикующие специалисты также должны исследовать специализированные библиотеки временных рядов, такие как sktime, которые обеспечивают согласованные интерфейсы для трубопроводов прогнозирования на основе деревьев.
Заключение
Использование деревьев решений для прогнозирования временных рядов не так просто, как применение их к независимым данным, но проблемы могут быть систематически преодолены. Путем явного включения временных особенностей через переменные лага и скользящую статистику, обеспечения стационарности через различия или преобразования, использования методов ансамбля для уменьшения дисперсии и принятия проверки на ходу, практикующие могут создавать точные и интерпретируемые модели прогнозирования. Ключ заключается в том, чтобы рассматривать временные ряды как контролируемую проблему обучения, уважая последовательный характер данных.
По мере развития исследований новые методы, такие как обобщенные случайные леса и анализ расширения нейронной базы (N-BEATS), сокращают разрыв между прогнозами на основе деревьев и глубоким обучением. Тем не менее, для многих реальных приложений, где интерпретируемость и вычислительная эффективность являются приоритетами, деревья решений остаются ценным инструментом. Педагоги, обучающие анализу временных рядов, должны включать эти методы в современную учебную программу, подчеркивая особенности инженерии и стратегии перекрестной проверки. При тщательном внедрении деревья решений могут предоставлять надежные прогнозы, которые отвечают требованиям бизнеса, финансов и оперативного планирования.
Читать далее: