Прогнозирование временных рядов: как предсказать будущие значения, используя функции, рассчитанные до t-1, без утечки даPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Прогнозирование временных рядов: как предсказать будущие значения, используя функции, рассчитанные до t-1, без утечки да

Сообщение Anonymous »

Вопрос:
Я работаю над проектом прогнозирования временных рядов, в котором мне нужно спрогнозировать еженедельные продажи (

Код: Выделить всё

kg_ordered_sum
) для различных комбинаций продукта и клиента. Данные собираются еженедельно () для каждого customer_name и prod_family с 1 января 2021 г. по 15 октября 2024 г.
Цель:
Прогнозируйтеkg_ordered_sum во время t для каждой комбинации customer_name и prod_family, используя функции, рассчитанные до времени t-1.
Подход:
Расчет функций: Все функции рассчитываются на основе данных до момента времени t- 1 для предотвращения утечки данных.
  • Функции включают в себя:

    Накопленные суммы (например, совокупная кг_ordered_sum)
  • Запаздывающие переменные (например,kg_ordered_sum за предыдущие недели)
  • Скользящая статистика
  • Частота покупок
  • Недели с момента первой покупки

Моделирование. Для прогнозирования я использую модели машинного обучения, такие как XGBoost.
Этапы подготовки данных:
Загрузка и предварительная обработка данных:

Код: Выделить всё

df = load_and_preprocess_data(data_path)
weekly_sales = preprocess_raw_data(df)
weekly_sales['is_future'] = 0  # All data initially marked as historical
Определите периоды обучения и тестирования:
Данные обучения: до 30 сентября 2024 г. (30 сентября 2024 г. ).
Данные тестирования: с 7 октября 2024 г. (07.10.2024) и далее. Тестовые данные означают будущее, которое я хочу предсказать, а не обычные обучающие и тестовые наборы данных, на которых я тренирую и оцениваю свою модель. Я уже сделал это, показав хорошие результаты r2score (0,86). Теперь я хочу смоделировать реальный сценарий, в котором мне действительно нужно сделать прогнозы на следующую неделю.
Создать будущий фрейм данных для прогнозирования:

Код: Выделить всё

# Define cutoff date
cutoff_date = pd.to_datetime('2024-09-30')

# Historical data up to cutoff date
history_upto_cutoff = weekly_sales[weekly_sales['date'] 
[list]
[*]При вычислении совокупных функций, таких как cumulative_kg_ordered, следует ли исключать будущие периоды (где is_future == 1) или следует включать исторические значения присваивается будущим данным в этих расчетах?

[*]Для таких функций, как Purchase_ Frequency и Weeks_since_first_purchase, которые зависят от first_purchase_date и order_count, значения в будущем становятся нулевыми или неверными. периоды в зависимости от того, как они рассчитываются.

[/list]
Мои вопросы:[/b]
[list]
[*]Как мне следует обрабатывать расчеты функций для будущих периодов, чтобы предотвратить утечку данных и одновременно предоставить модели достаточный исторический контекст?

Приемлемо ли использование исторических значений, присвоенных будущим данным в расчетах объектов, или мне следует продолжать исключать будущие периоды из совокупных сумм и подсчетов?

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

[/list]
Любые рекомендации, предложения или передовой опыт от тех, кто имеет опыт прогнозирования временных рядов и разработки функций, будут очень признательны! 

Подробнее здесь: [url]https://stackoverflow.com/questions/79123110/time-series-forecasting-how-to-predict-future-values-using-features-calculated[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»