Каков правильный способ делать прогнозы с помощью моделей прогнозирования временных рядов?

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

Я занимаюсь машинным обучением и анализом данных уже некоторое время, но теперь я начал изучать прогнозирование временных рядов, и у меня есть (скажем) простой вопрос: Какие характеристики/входные данные нужны для модели прогнозирования временных рядов?

Допустим, я хочу предсказать будущие продажи для конкретного магазина. Вот характеристики, которые у меня есть:

1. дата (характеристика)
2. количество посетителей (характеристика)
3. продажи (результат)

Я буду использовать эти данные для обучения модели, но мой вопрос связан с прогнозированием. Я могу добавить даты в будущем, но не могу добавить количество посетителей, потому что не знаю этого (я не знаю, сколько людей посетит магазин в будущем). Это означает, что для прогнозирования временных рядов единственным входным параметром, который я могу использовать для будущего прогноза, является дата, правильно?

Есть ли объяснение этому?

Например, если у меня есть простая задача классификации, такая как предсказание пола на основе веса, роста и размера обуви человека, я буду использовать эти характеристики для обучения, а затем добавлю вес, рост и размер обуви для ‘неизвестного’ человека, и моя модель скажет мне, мужчина это или женщина. Но для прогнозирования временных рядов я могу использовать дату и 100 различных характеристик для обучения, но единственной характеристикой, которую я имею для будущего прогноза, является дата.

Может кто-то сказать, прав я или нет, и, пожалуйста, объясните мне эту ‘аномалию’?

К вашему сведению, я думал о том, чтобы начать с Prophet, NeuralProphet, моделей ARIMA и т.д., но в конечном итоге создам свои собственные модели с помощью Keras.

Спасибо! 🙂

Не так много автоматических алгоритмов инженерии признаков для наборов данных временных рядов. Вам либо нужны знания в соответствующей области и необходимо обработать данные, либо используйте что-то простое, чтобы начать, например ARIMA или какую-то модификацию ARIMA. Документация ARIMA объясняет, какая предобработка может потребоваться, например, определение параметров p, d, q и т.д.

Вопрос, который вам следует задать, заключается в том, какова формулировка проблемы? Что вы пытаетесь предсказать?

Когда у вас есть целевая переменная, вам нужно подумать о всем наборе данных и о том, как вы будете делить его на обучающую и тестовую выборки. В отличие от других наборов данных, вам нужно делить тестовые наборы в соответствии с временной шкалой, а не случайно. Для этого даты очень важны. Например, вы можете использовать данные с 2011 по 2015 год для обучения.

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

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

Правильный подход к предсказанию с использованием моделей временного ряда

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

Характеристика задачи предсказания

В вашем примере вы желаете предсказать продажи в конкретном магазине, используя данные о дате и количестве посетителей. Основные аспекты, которые стоит учитывать, включают:

  • Целевая переменная (результат): в данном случае это продажи.
  • Фичи (входящие данные): дата и количество посетителей.

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

Преобразование данных и фичи

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

  1. Создание новых фичей:

    • Лаговые фичи: Используйте продажи и посещаемость за предыдущие дни. Например, продажи за день назад, две недели назад и т.д. Это поможет модели уловить тренды и сезонность.
    • Фичи временного ряда: Добавьте сезонные факторы, такие как день недели, месяц, праздники и специальные мероприятия. Эти переменные могут оказать существенное влияние на продажи.
    • Экзогенные переменные: Если возможно, используйте данные о факторах, влияющих на количество посетителей (например, погодные условия, маркетинговые акции, конкуренты и т.д.).
  2. Проверка на чистоту данных:

    • Убедитесь, что ваши данные не содержат выбросов или пропусков. Очистка данных — это важный шаг, так как даже небольшие ошибки могут значительно исказить результаты моделирования.

Этапы построения модели

  1. Определение целевой переменной:

    • Четко определите, что именно вы хотите предсказать. Это может быть как общая сумма продаж, так и продажи по категориям товаров.
  2. Разбиение данных:

    • Разделите данные на тренировочный и тестовый наборы на основе временной шкалы. Это особенно важно в задачах временных рядов, чтобы избежать утечек информации.
  3. Моделирование:

    • Начните с простых моделей, таких как ARIMA или экспоненциальное сглаживание, а затем переходите к более сложным нейронным сетям, если это необходимо. Prophet и NeuralProphet могут стать хорошим выбором, чтобы быстро реализовать прогноз.
  4. Оценка моделей:

    • Используйте метрики, такие как MAE (ошибка абсолютного значения) или RMSE (корень из средней квадратичной ошибки), для оценки качества ваших предсказаний.
  5. Реализация и адаптация:

    • Наблюдайте за тем, как модель работает на новых данных, и корректируйте ее по мере необходимости. Временные ряды требуют постоянного обновления и мониторинга.

Заключение

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

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

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

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