Учебник для бета-версии - легко выполнять прогнозирование

Оглавление

  1. Введение
  2. Настройка, сравнение, настройка и смешивание моделей
  3. Производственная модель
  4. Краткое содержание
  5. Рекомендации

Введение

Откровенно говоря, даже если это кажется простым, с алгоритмами временных рядов обычно трудно иметь дело. PyCaret [2] облегчает много монотонной и запутанной работы, автоматизируя настройку и сравнение моделей процессов временных рядов. Вы можете сделать еще один шаг вперед, внедрив выбранную вами модель в производство с помощью этой библиотеки Python. Однако вы все равно можете внести свой вклад и автономию в библиотеке, настроив различные параметры. С учетом сказанного давайте более подробно рассмотрим вариант использования, чтобы проиллюстрировать, насколько просто прогнозирование с помощью этого уникального инструмента и библиотеки ниже.

Настройка, сравнение, настройка и смешивание моделей

У PyCaret есть, кажется, бесчисленное множество моделей, из которых можно выбирать, а также сравнивать. О некоторых я, честно говоря, даже не слышал, а также о некоторых более популярных и надежных, таких как модель ARIMA (авто-регрессивная интегрированная скользящая средняя).

Вот некоторые из названий моделей временных рядов, которые вы можете попробовать, и, повторяю, их еще больше:

  • Сезонный наивный прогнозист
  • Экспоненциальное сглаживание
  • АРИМА
  • Авто АРИМА
  • Прогноз полиномиального тренда
  • K соседей с конд. Десезонализация и детрендирование
  • Линейный с конд. Десезонализация и детрендирование
  • Эластичная сетка с конд. Десезонализация и детрендирование
  • Поездка с конд. Десезонализация и детрендирование
  • Сеть для лассо с проводником. Десезонализация и детрендирование
  • Экстремальное повышение градиента с конд. Десезонализация и детрендирование

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

Вот простое руководство по легкому прогнозированию временных рядов с помощью PyCaret:

# Code is edited and reorganized from example source:
https://nbviewer.org/github/pycaret/pycaret/blob/time_series_beta/time_series_101.ipynb [4]
ex = TimeSeriesExperiment()
ex.setup(data=y, fh=fh, fold=fold, session_id=100)
y_train = ex.get_config("y_train")
y_test = ex.get_config("y_test")
best_baseline_models = ex.compare_models(fold=fold, sort='MAE', n_select=10)
compare_metrics = ex.pull()
best_tuned_models = [ex.tune_model(model) for model in best_baseline_models]
mean_blender = ex.blend_models(best_tuned_models, method='mean')
y_predict = ex.predict_model(mean_blender)
ex.plot_model(estimator=mean_blender)

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

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

Производственная модель

Теперь, когда вы протестировали несколько моделей и сравнили их показатели, такие как MAE в этом примере (или любые другие показатели, такие как RMSE, MAPE, SMAPE и R2, а также время, необходимое для запуска моделей). , вы можете начать сохранять и загружать свою модель для будущего использования.

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

Сохранение вашей модели

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

ex.save_model(final_model, "my_final_model")

Загрузка вашей модели

Загрузка вашей модели также проста, и вы можете применить метод прогнозирования, чтобы увидеть, как ваши прогнозы соотносятся с вашим индексом или первым столбцом.

ex_load = TimeSeriesExperiment()
loaded_model = ex_load.load_model("my_final_model")

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

  • Разделение окна
  • Расширяющееся окно
  • Прокручивающееся окно
  • Обработка ошибок

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

Краткое содержание

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

Подводя итог, вот что мы узнали:

* Setting Up, Comparing, Tuning, and Blending Models
* Productionalize Model

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

Я не связан ни с одной из этих компаний.

Пожалуйста, не стесняйтесь проверить мой профиль,Matt Przybyla, и другие статьи, а также подписаться на получение уведомлений по электронной почте для моих блогов, перейдя по ссылке ниже, или нажав значок подписки в верхней части экрана рядом со значком подписки, и свяжитесь со мной в LinkedIn, если у вас есть какие-либо вопросы или комментарии.

Ссылка для подписки: https://datascience2.medium.com/subscribe

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

[1] Фото Icons8 Team на Unsplash, (2018)

[2] Моэз Али, Временные ряды PyCaret, (2021)

[3] Фото Glenn Carstens-Peters на Unsplash, (2019)

[4] PyCaret, Пример временных рядов Jupyter Notebook, (2021)

[5] Фото Bagus Hernawan на Unsplash, (2017)