должен ли я изменить набор данных, чтобы использовать его для регрессии временных рядов с RNN/LSTM?

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

Я вижу этот учебник, чтобы узнать, как использовать LSTM для прогнозирования временных рядов, и заметил, что он сдвинул целевую/метки вверх, чтобы все признаки были на момент времени t, а целевая величина – на t+1.

Так что мой простой вопрос: всегда ли нужно так делать при работе с временными рядами?

У меня есть данные временного ряда, и я хочу использовать их для создания регрессионной модели с RNN. Сначала я использовал нейронную сеть с прямой связью, но это не сработало достаточно хорошо, поэтому я решил использовать RNN/LSTM. Мой вопрос: следует ли оставить набор данных таким, какой он есть сейчас, где в каждой строке есть признаки и целевая величина на момент времени t, или мне следует сдвинуть столбец с целевой величиной так, чтобы признаки всегда были на момент времени t, а целевая величина всегда была сдвинута (t+1) вперед?

Да, вы делаете прогноз, что означает использование исторических признаков (таких как на момент времени t) для предсказания целевой величины в будущем (скажем, t+1). Во многих случаях вы можете использовать признаки за несколько прошлых временных меток (скажем, t-n, t-n+1, … t) для прогнозирования. Предварительно обработайте ваши данные таким образом (X_исторические, y_будущие), чтобы избежать утечки данных.

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

При разработке модели временных рядов с использованием рекуррентных нейронных сетей (RNN) или долгосрочной краткосрочной памяти (LSTM) непосредственно важно понимать, как правильно формировать ваши входные и целевые данные. Рассмотрим ваши вопросы по поводу смещения целевой переменной.

1. Прогнозирование — ключевая задача:
Ваша цель заключается в том, чтобы использовать исторические данные для прогнозирования будущих значений. Когда вы работаете с временными рядами, особенно с LSTM, важно четко понимать, что входные данные (признаки) должны представлять информацию, доступную на момент времени t, в то время как целевая переменная (target) должна быть значением, которое вы хотите предсказать на следующий временной шаг t+1.

2. Смещение целевой переменной:
Смещение целевой переменной — это более чем легкая манипуляция с данными. Убедитесь, что ваши модели не используют информацию о будущем при обучении, поскольку это приведет к утечке данных (data leakage). Утечка данных приводит к неэффективным моделям, которые работают хорошо на обучающем наборе, но плохо на тестовом. Следовательно, рекомендуется сдвинуть вашу целевую переменную так, чтобы каждая строка вашего набора данных содержала признаки на момент времени t, а целевая переменная соответствовала времени t+1.

3. Учет временной зависимости:
Важно отчётливо осознать, что временные ряды характеризуются зависимостью от предыдущих значений. Используя только данные времени t, вы упускаете возможность использовать информацию о предыдущих временных точках, что может значительно увеличить предсказательную силу вашей модели. В большинстве случаев важно не только текущее значение, но и последовательные прошлые значения, что можно реализовать, создавая окна для ваших данных (t-n, t-n+1, …, t). При этом основная идея заключается в том, что модель должна иметь возможность "видеть" контекст, т.е. каковы были значения в предыдущих временных шагах, чтобы эффективно предсказать значение на следующем.

4. Практическое применение в RNN/LSTM:
Работа с RNN и LSTM включает в себя подготовку данных в формате, который модель может обрабатывать. Обычно можно использовать подход "упаковки" (batching), который требует, чтобы ваши данные были структурированы в виде трёхмерного массива. Размерности массива – [количество образцов, размер окна, количество признаков]. Это значит, что вы сможете включить несколько временных шагов (например, 5 предыдущих значений) для предсказания следующего значения.

5. Итоговые рекомендации:
Советую вам принять следующие меры:

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

Следуя этим принципам, вы сможете создать более точные и надежные модели для задач временных рядов с использованием RNN и LSTM.

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

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