Интересный вопрос, нет правила или хорошего ответа на вашу проблему ...
Похоже, вы хотите предсказать t + n точек, начиная с t + 1, где t - ваша последняя известная точка.
Если это так, вам необходимо:
- Скорректировать ваши данные: Чтобы предсказать t + 1 непрерывного временного ряда Кажется, что ваши данные не имеют регулярного интервала. Поэтому существует метод под названием Croston, который помогает работать с прерывистыми данными. Простыми словами, вы можете сгруппировать свои данные, чтобы уменьшить количество длинных 0 точек данных (и неизвестных функций). Pandas предлагает хороший метод для повторной выборки (?) Вашего фрейма данных для создания данных регулярных интервалов временных рядов (метод называется resample).
Важно удалить неизвестные целевые значения (y с nans ). Но при этом вы потеряете важную информацию, поэтому один из способов - создать две модели. Один для вменения данных для заполнения неизвестных значений y. Вторая для прогнозирования будущих значений y.
Первая модель может быть представлена как AutoEncoder, где функции представляют текущее время. Другими словами, данные n функций предсказывают y. Где n и y были получены в одно и то же время t (та же строка).
Вторая модель может предсказывать будущее (прогнозирование), поэтому после ввода недостающих значений y предсказывайте будущее t + n, где n существует {1 -> + inf}.
Еще один хороший подход к работе с пропущенными значениями - это создание трех моделей вместо двух.
Первая - это вышеупомянутое для вменения данных.
После заполнения отсутствующих целевых значений используйте новую матрицу для ввода второго автокодировщика.
Используйте скрытое состояние второго AE в качестве входных данных для третьей модели, таким образом, у вас могут быть пропущенные значения, и AE может получить сжатое представление этих значений, используя лучшее для предсказания будущего.
Лучшая архитектура варьируется от проблемы к проблеме. Например, в вашем случае вы можете просто отбросить отсутствующие целевые значения и получить хорошую окончательную модель.
Одна корректировка, которая должна быть необходима, - это ввести отсутствующие значения функций, но я бы попробовал с отсутствующими значениями перед добавлением некоторого шума . При необходимости вы можете добавить среднее, медианное, минимальное или максимальное значение скользящего окна (используйте метод прокрутки pandas).