Что произойдет, если использовать модели прогнозирования на основе леса с одним деревом или оценщиком?

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

Я экспериментирую с конформным прогнозированием по данным с высокой частотой, используя следующие модели регрессии на основе леса для задачи прогнозирования на обучающей выборке. Размер унивариантных (1D) временных рядов составляет (8640, 1), что означает одно значение столбца во времени для 8460 временных шагов.

Краткая заметка:

8460 означает $30×288$ (каждый день имеет 288 наблюдений) — данные собирались с интервалами в 5 минут, что дает $12×24$ = 288 наблюдений/данных в день.

Следующие данные являются временными:

import pandas as pd
import numpy as np
np.random.seed(42) 
import matplotlib.pyplot as plt

# создать данные
df = pd.DataFrame({
    "TS"   : np.arange(0, 288*30),
    "value": np.abs(np.sin(2 * np.pi * np.arange(0, 288*30) / 7) + np.random.normal(0, 20.1, size=288*30)) # генерировать сезонность
})

# Установить столбец 'TS' в качестве индекса
df = df.set_index('TS')

# Построить график столбца 'value' по новому индексу
plt.figure(figsize=(10, 6))
plt.plot(df.index, df['value'])
plt.xlabel('Временные шаги (эпохи=5мин)')
plt.ylabel('значение')
plt.title('1D данные во времени')
plt.grid(True)
plt.show()

df.shape      # (8640, 1)

Предположим, я разбил данные на обучающую и тестовую выборки (Предположим, я хочу прогнозировать конец данных за последние 7 дней = $7×288$ наблюдений)

Я применяю следующие модели на основе леса с следующими настройками (n_estimators=1) из-за высокой вычислительной нагрузки и высокой частоты данных.

from lineartree import LinearForestRegressor
model = LinearForestRegressor( base_estimator=Ridge(random_state=42),
                  n_estimators=1,
                  n_jobs=-1,
                  max_features="sqrt")

from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=1,
                              random_state=123,
                                    n_jobs=-1)

Мои вопросы:

  • Действуют ли модели леса как решающee дерево (с единственным деревом), если они настроены на одно дерево?
  • В общем, допустимо ли использовать модель леса для задачи прогнозирования унивариантных (1D) временных данных, используя одно дерево? Каковы последствия использования одного дерева внутри моделей леса? т.е. переобучение/недообучение

Примечание 1: Меня не интересует изменчивость данных, назначаемая уменьшением выборки с помощью resample() и функций агрегирования, таких как mean(), для уменьшения выборки с 5 минут до 1 часа, так как я теряю информацию при маленьком временном разрешении.

resampled_df = (df.set_index('datetime')          # Привести данные в соответствие, установив столбец с датой и временем в качестве индекса датафрейма, необходимого для пересчетa
                  .resample('1H')                 # пересчитать с частотой 1 час
                  .mean()                         # использовать mean() для агрегирования
                  .interpolate()                  # заполнение NaN и пропущенных значений [на всякий случай] 
                )
resampled_df.shape                                # (24, 1)

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

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

1. Поведение лесных моделей с одним деревом

Да, если вы установите n_estimators=1 в лесной модели, такая модель будет вести себя как одиночное дерево решений. Однако существует несколько ключевых различий:

  • Корректировка: Лесные модели, такие как случайный лес, нацелены на уменьшение дисперсии за счет агрегирования предсказаний нескольких деревьев. Использование лишь одного дерева приводит к отсутствию этой техники усреднения, что может увеличить вариативность ваших предсказаний.

  • Предобучение: Одно дерево не будет иметь той же гибкости и мощи, что и полноценная лесная модель, потому что оно не использует случайные подмножества данных и признаков, что помогает избежать переобучения.

2. Использование лесных моделей для прогнозирования однородных временных рядов

Использование модели леса с единственным деревом для прогнозирования однородных временных данных (как в вашем случае с 1D данными) возможно, но результаты могут быть неоднозначными. Вот основные последствия такого подхода:

  • Переобучение и недообучение:
    • Переобучение: Если данные обладали достаточной сложностью и количественными особенностями, одно дерево может не уметь обобщать на тестовые или новые данные, что приведет к переобучению и плохому качеству предсказаний.
    • Недообучение: С другой стороны, в случае простых зависимостей, одно дерево может не достаточно "подходить" под данные, что также приведет к недообучению.

Заключение

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

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

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

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