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

Что такое прогнозирование временных рядов

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

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

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

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

Пророк для прогнозирования

Prophet — это программное обеспечение с открытым исходным кодом, выпущенное командой Facebook Core Data Science. Prophet — это процедура прогнозирования данных временных рядов, основанная на аддитивной модели, в которой нелинейные тренды соответствуют годовой, еженедельной и ежедневной сезонности, а также праздничным эффектам. Он лучше всего работает с временными рядами, которые имеют сильные сезонные эффекты и несколько сезонов исторических данных. Пророк устойчив к отсутствующим данным и сдвигам в тренде и обычно хорошо справляется с выбросами.

Основные четыре особенности Пророка.

  1. Точно и быстро.
  2. Полностью автоматический.
  3. Настраиваемые прогнозы.
  4. Доступно в R или Python

Итак, давайте начнем прогнозирование небольшого временного ряда с использованием Python API Facebook Prophet. Прежде всего, нам нужно установить пакет Facebook Prophet, чтобы вы могли установить его с помощью pip в Python, как показано ниже.

pip install fbprophet

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

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

New позволяет подогнать данные временных рядов к модели. Мы начнем с создания экземпляра класса Prophet, а затем подгоним его к нашему набору данных, вы можете увидеть код ниже.

Следующим шагом является подготовка нашей модели к прогнозам на будущее. Это достигается с помощью метода Prophet.make_future_dataframe и передачи количества дней для прогнозирования в будущем. Мы используем атрибут periods, чтобы указать это.

В приведенном выше фрагменте кода мы поручили Профету сгенерировать 365 меток даты в будущем.

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

Как бы нам ни понадобились ds, yhat, yhat_lowerиyhat_upper. yhatнаш прогноз, yhat_lowerнижняя граница наших прогнозов и yhat_upper — это верхняя граница наших прогнозов.

  • ds : отметка даты прогнозируемого значения.
  • yhat: прогнозируемое значение нашей метрики (в статистике yhat – это обозначение, традиционно используемое для представления прогнозируемых значений значения y).
  • yhat_lower: нижняя граница наших прогнозов.
  • yhat_upper: верхняя граница наших прогнозов.

Теперь давайте построим прогноз временного ряда, у Prophet есть встроенная функция, которая позволяет нам строить прогнозы, которые мы только что создали. Это достигается с помощью mode.plot() и передачи наших прогнозов в качестве аргумента.

Как показано на рисунке выше, Пророк отображает наблюдаемые значения нашего временного ряда (черные точки), прогнозируемые значения (синяя линия) и интервалы неопределенности наших прогнозов (области, заштрихованные синим цветом).

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

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