Генерация временных рядов – многомерные данные временных рядов

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

Отказ от ответственности: Математики, пожалуйста, не сердитесь на меня за использование некоторых терминов в этом посте. Я инженер. 🙂

Предыстория:
Итак, я в настоящее время работаю над задачей, где мне нужно сгенерировать последовательность временного ряда процесса, в котором n участников движутся в 2D-пространстве. Но я не знаю, возможно ли это вообще. Процесс изучается некоторой моделью машинного обучения M.

Кстати! Я никогда не работал с данными временных рядов, но у меня есть хороший опыт обучения моделей на изображениях и сигналах, без последовательностей, поэтому я читаю об этом на ходу.

Итак, чтобы начать с чего-то очень простого, я взял набор данных о позициях футболистов отсюда: Here. И я пытаюсь смоделировать это как задачу с обучением под присмотром, где я пытаюсь предсказать позиции n игроков в момент времени T, учитывая их позиции в момент времени T-1. Но я очень быстро понял, что это не сработает, потому что позиции игроков также зависят от позиции мяча и игроков команды соперника.

Итак, мои вопросы следующие:
1. Как мне смоделировать набор данных? Будет ли это просто (Nx2xNo.Timestamps) как 3D-тензорный набор данных (N соответствует игрокам. 2 для x-позиции и y-позиции, и количество временных меток как последнее измерение)?

  1. Правильно ли я моделирую проблему генерации временного ряда как задачу с обучением под присмотром?

  2. Какими предобработками данных мне следует заниматься? Как мне справляться с пропусками в данных?

  3. Причина, по которой я отказался от идеи использования футбольного набора данных: Вот снова, потому что он включает только позиции одной команды. Другая команда не носила датчики :-(. Я читал кое-что об экзогенных переменных, также влияющих на процесс, читая о модели ARIMA.

  4. Если все это возможно, и я надеюсь, что это так (ведь невозможно ничего!), какими моделями мне нужно заинтересоваться? Потому что в конечном итоге мне придется работать над этой проблемой с совершенно другим набором данных. У меня есть прошлый опыт обучения моделей нейронных сетей, таких как CNN и ANN, и я чувствую себя очень комфортно, работая с нейронными сетями, и, в идеале, хотел бы продолжать делать это здесь. До сих пор мои исследования указывали мне на LSTM, RNN и модель ARIMA.

Пожалуйста, направьте меня в этом, поскольку я очень новичок в анализе временных рядов.

Данные временных рядов должны содержать все ваши наблюдения с некоторой стандартной временной зависимостью (здесь это довольно очевидно). Если я хочу проверить теорию на какой-то модели и мне нужен какой-то набор данных, параметры будут такими: временные метки * количество признаков (включает положение игрока относительно источника). Двумерного тензора будет достаточно. Моя причина не делать трехмерный тензор заключается в том, что это приведет к более сложному сценарию, где мне придется соотносить третье измерение (количество игроков [N]) с первыми двумя измерениями для предсказания. Лучше упростить позиции и в одной строке иметь несколько меток, так как каждая позиция будет иметь значение для моей модели.

Генерация временных рядов обычно попадает под непрерывное прогнозирование с использованием предыдущих наблюдений. Я бы предпочел отнести это к версиям обучения с подкреплением. Да, вы можете работать с учетом обучения с учителем, но также попробуйте подход RL.

По поводу пропусков в данных, я бы сказал, что удалите их, если они составляют не более 10-15% данных. Нет фиксированных стандартов на указанный процент. Если он больше, заполните интерполяцией или скользящим средним (оба метода мне принесли пользу). Остальная предобработка зависит от типа данных, нормализации данных, удаления выбросов и т. д.

Да, это будет влиять на данные, но вы можете сгенерировать данные, используя различные колебания синусоидальной волны для ваших тестов или использовать любые другие функции для генерации сигнала (предпочтительно scipy).

В настоящее время я тестирую комбинацию двунаправленной LSTM – CNN для своего временного ряда, да, ARIMA хорош, но небольшой эксперимент не повредит. Я бы сказал, выбрать комбинацию CNN и любой из RNN для временных рядов.

Надеюсь, это поможет.

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

Конечно, давайте разберем ваш вопрос подробно.

Генерация временных рядов – многомерные временные ряды

Контекст задачи

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

Ответ на вопросы

  1. Как моделировать набор данных?
    Ваша идея использовать 3-мерный тензор формата (N x 2 x Количество меток времени) вполне подходит для вашей задачи. Здесь:

    • N – это количество игроков,
    • 2 – это количество координат (X и Y),
    • Количество меток времени – это временной промежуток, в котором вы наблюдаете за перемещениями.

    Такой подход позволит вам отслеживать позицию каждого игрока во времени, однако желательно еще включить дополнительные параметры, такие как позиции мяча и противников, что сделает модель более реалистичной.

  2. Правильна ли ваша модель задачи как задача обучения с учителем?
    Да, подход через обучение с учителем применим здесь, так как справиться с задачей предсказания будущих позиций можно, обучившись на исторических данных. Тем не менее, стоит также рассмотреть подход с подкреплением (Reinforcement Learning), особенно для моделирования адаптивных стратегических решений, которые игроки могут принимать в зависимости от игровой ситуации.

  3. Какие шаги предобработки данных необходимы и как работать с отсутствующими значениями?

    • Предобработка: Нормализация данных, удаление выбросов и масштабирование могут существенно улучшить качество моделирования.
    • Отсутствующие значения: Если их количество невелико (до 10-15% от общих данных), удалите их. В противном случае используйте методы интерполяции или скользящее среднее для заполнения пропусков.
  4. Краткое размышление о влиянии внешних переменных и выборе датасета
    Понимание влияния экзогенных переменных, таких как позиции противников и мяча, может улучшить модель. Если текущий датасет не учитывает эти данные, попробуйте создавать или симулировать ансамбли данных с учетом таких факторов.

  5. Какие модели использовать?
    Вы уже верно заметили, что рекуррентные нейронные сети (RNN), особенно LSTM (Long Short-Term Memory), являются отличными кандидатами для анализа временных рядов. Попробуйте также комбинации с CNN (сверточными нейронными сетями) для извлечения пространственных закономерностей. Помимо этого, метод ARIMA может быть хорош для традиционного подхода в анализе временных рядов.

Рекомендация

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

Надеюсь, это поможет вам лучше ориентироваться в вашей задаче и продолжить успешное изучение области анализа временных рядов.

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

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