Потенциальная утечка данных при разработке функций временных рядов для прогнозного моделированияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Потенциальная утечка данных при разработке функций временных рядов для прогнозного моделирования

Сообщение Anonymous »

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

    expedite2
    : Содержит записи о том, когда были активированы поставщики.
Моя цель — создать модель, которая может предсказать в любой конкретный день, будет ли поставщика необходимо активировать на основе исторических закономерностей.
Вот упрощенная версия моей текущей функции подготовки данных:

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

import pandas as pd

def optimized_join_and_prepare_data(doc3, expedite2):
doc3['PROCESS_DATE'] = pd.to_datetime(doc3['PROCESS_DATE'])
expedite2['LOG_DATE'] = pd.to_datetime(expedite2['LOG_DATE'])

doc3['item_key'] = doc3['DOC_NUM'].astype(str) + '_' + doc3['DOC_ITEM'].astype(str) + '_' + doc3['SAP_CODE']
expedite2['item_key'] = expedite2['DOC_NUM'].astype(str) + '_' + expedite2['DOC_ITEM'].astype(str) + '_' + expedite2['SAP_WEB_CODE']

doc3 = doc3.sort_values('PROCESS_DATE')
expedite2 = expedite2.sort_values('LOG_DATE')

merged = pd.merge_asof(doc3, expedite2[['item_key', 'LOG_DATE', 'DATA01']],
left_on='PROCESS_DATE',
right_on='LOG_DATE',
by='item_key',
direction='nearest',
tolerance=pd.Timedelta('2d'))

merged['LOG_DATE'] = merged['LOG_DATE'].fillna(pd.NaT)
merged['DATA01'] = merged['DATA01'].fillna('NO_ACTIVATION')
merged = merged.dropna(subset=['PROCESS_DATE', 'item_key'])

return merged

final_data = optimized_join_and_prepare_data(doc3, expedite2)
Мои основные опасения и вопросы:
  • Существует ли при таком подходе риск утечки данных, особенно с использованием merge_asof и двухдневной терпимостью?
  • Если присутствует утечка данных, как я могу это изменить функция, гарантирующая, что я использую только прошлую информацию для каждого прогнозируемого дня, сохраняя при этом вычислительную эффективность?
  • Есть ли какие-либо другие соображения, специфичные для временных рядов Что следует учитывать при подготовке этих данных для прогнозной модели?
Я имею дело с большим набором данных, поэтому эффективность вызывает беспокойство, но я хочу обеспечить целостность моего анализа временных рядов. Будем очень признательны за любые идеи и предложения по улучшению!
Я попробовал несколько подходов к подготовке данных временных рядов:
  • Изначально я использовал простое объединение ключа и даты элемента, но это привело к множеству пропущенных значений и не отразило временную природу данных.
  • Затем я реализовал функцию merge_asof, как показано в моем коде. Я ожидал, что это позволит совместить данные активации (из expedite2) с ближайшей датой обработки (из doc3) в пределах двухдневного окна. Это работало хорошо с точки зрения эффективности и, похоже, фиксировало недавние активации.
  • Я также добавил исторические функции, такие как предыдущие активации и дни с момента последней активации, используя функцию сдвига внутри каждой группы элементов.
Чего я ожидал:
  • Набор данных, в котором каждая строка в документе 3 дополнена самыми последними данными об активации.
  • Исторические объекты, фиксирующие прошлые шаблоны активации для каждый элемент.
  • Эффективный процесс, способный обрабатывать большие наборы данных.
Что произошло на самом деле:
  • Эта функция эффективно работает с моим большим набором данных.
  • Я получаю объединенный набор данных с информацией об активации и некоторыми историческими функциями. >
  • Однако я не уверен, что мне удалось полностью устранить утечку данных, особенно с помощью двухдневного допуска в merge_asof.
  • Я' Меня беспокоит, что функция сдвига для создания исторических объектов может не эффективно фиксировать долгосрочные закономерности.
Мне нужна проверка правильности мой подход или предложения по улучшению, особенно в отношении предотвращения утечки данных и более сложной разработки функций временных рядов.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ve-modelin
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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