Как подойти к предсказанию двоичных временных рядов или последовательности? ⇐ Python
Как подойти к предсказанию двоичных временных рядов или последовательности?
Сейчас я столкнулся с проблемой прогнозирования. Возможно, моя проблема неуместна, но я посмотрел на нее с другой точки зрения.
Итак, у меня есть временной ряд в pndas df:
Дата(индекс) targetVar функция1 функция2 .... функция m 20230204, 35 ххх ххх ххх 20230205, 34,2 ххх ххх ххх 20230206, 36,5 ххх ххх ххх
Прежде чем делать прогноз, поскольку мне нужно только знать, превысит ли целевая переменная определенный порог внутри определенного периода времени (я называю это «скользящим периодом», поэтому количество записей увеличивается в df), я создаю newTargetVar, если произойдет такое targetVar>порог внутри скользящего периода.
Итак, у нас есть такой df:
Дата(индекс) newTargetVar функция1 функция2 .... , функция m 20230204 1 ххх ххх ххх 20230205, 1 ххх ххх ххх 20230206, 0 ххх ххх ххх
Теперь у нас есть последовательность 0 и 1 для прогнозирования. В конце df в newTargetvar недостающим 0ad 1 присваиваются некоторые разумные значения. Идея состоит в том, чтобы иметь вероятность достижения цели в последний день и принять решение об этом.
Переменные могут по-разному влиять на реакцию с течением времени, поэтому модель должна придавать меньшее значение более старым наблюдениям и большее значение самым последним.
Я попробовал подход с использованием скользящего окна. Возьмите окно определенного размера до времени (записи) t, обучите классификатор и спрогнозируйте время t+1. В конце, после различных итераций, я получаю некоторые показатели, такие как AUC, на тестовых данных
Я знал, что при таком подходе существует проблема предвзятости прогноза, но я убедился, что она оказалась сильнее, чем ожидалось. Более того, я искренне не думаю, что последовательность 0 и 1 будет происходить случайным образом, но произойдет с некоторыми критериями, между временем t и t+1 очень сложно, чтобы реализация 0 и 1 так сильно изменилась. Таким образом, метод должен учитывать эту возможность. Но если я вставлю newTargetvar в момент t-1 или t-2 в функции, смещение станет еще хуже.
Надеюсь, все понятно.
Есть ли что-то принципиально неправильное в моем подходе к его определению? Есть ли у вас идеи, как получить вероятность, которую я пытаюсь оценить?? Любая модель, предложение? Как бы вы подошли к этой проблеме?
Сейчас я столкнулся с проблемой прогнозирования. Возможно, моя проблема неуместна, но я посмотрел на нее с другой точки зрения.
Итак, у меня есть временной ряд в pndas df:
Дата(индекс) targetVar функция1 функция2 .... функция m 20230204, 35 ххх ххх ххх 20230205, 34,2 ххх ххх ххх 20230206, 36,5 ххх ххх ххх
Прежде чем делать прогноз, поскольку мне нужно только знать, превысит ли целевая переменная определенный порог внутри определенного периода времени (я называю это «скользящим периодом», поэтому количество записей увеличивается в df), я создаю newTargetVar, если произойдет такое targetVar>порог внутри скользящего периода.
Итак, у нас есть такой df:
Дата(индекс) newTargetVar функция1 функция2 .... , функция m 20230204 1 ххх ххх ххх 20230205, 1 ххх ххх ххх 20230206, 0 ххх ххх ххх
Теперь у нас есть последовательность 0 и 1 для прогнозирования. В конце df в newTargetvar недостающим 0ad 1 присваиваются некоторые разумные значения. Идея состоит в том, чтобы иметь вероятность достижения цели в последний день и принять решение об этом.
Переменные могут по-разному влиять на реакцию с течением времени, поэтому модель должна придавать меньшее значение более старым наблюдениям и большее значение самым последним.
Я попробовал подход с использованием скользящего окна. Возьмите окно определенного размера до времени (записи) t, обучите классификатор и спрогнозируйте время t+1. В конце, после различных итераций, я получаю некоторые показатели, такие как AUC, на тестовых данных
Я знал, что при таком подходе существует проблема предвзятости прогноза, но я убедился, что она оказалась сильнее, чем ожидалось. Более того, я искренне не думаю, что последовательность 0 и 1 будет происходить случайным образом, но произойдет с некоторыми критериями, между временем t и t+1 очень сложно, чтобы реализация 0 и 1 так сильно изменилась. Таким образом, метод должен учитывать эту возможность. Но если я вставлю newTargetvar в момент t-1 или t-2 в функции, смещение станет еще хуже.
Надеюсь, все понятно.
Есть ли что-то принципиально неправильное в моем подходе к его определению? Есть ли у вас идеи, как получить вероятность, которую я пытаюсь оценить?? Любая модель, предложение? Как бы вы подошли к этой проблеме?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение