В моих предыдущих статьях Бенчмаркинг Neural Prophet. Часть I — Neural Prophet против Facebook Prophet и Бенчмаркинг Neural Prophet. Часть II — изучение набора данных по электроэнергии, мы рассмотрели NeuralProphet и оценили, обеспечивает ли он повышение производительности по сравнению с Facebook Prophet (TLDR; да) и обеспечивает ли он в целом хорошую производительность точечного прогнозирования (TLDR; да). ).

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

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

«Наша цель [основных разработчиков NeuralProphet] — ускорить исследования и разработки конформного прогнозирования в пространстве временных рядов в любой области, используя NeuralProphet в качестве инструмента для быстрого экспериментирования и создания прототипов. Наша текущая реализация конформного предсказания — это только начало нашего пути к конформному предсказанию. Мы приглашаем наших друзей из сообщества Conformal Prediction сотрудничать и разрабатывать вместе с нами, чтобы сделать новейшие методы конформного прогнозирования более доступными для пользователей в настройках временных рядов».

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

Хотя конформное прогнозирование изначально было разработано для данных IID, недавние исследования и инновации в конформном прогнозировании распространили его на временные ряды и прогнозирование. Впервые в истории временных рядов и прогнозирования Conformal Prediction разблокировал надежное вероятностное прогнозирование, которое может создавать интервалы прогнозирования с заданным охватом прогнозирования при любом выбранном уровне достоверности.

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

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

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

В моей предыдущей статье Вероятностное прогнозирование с конформным прогнозированием и NeuralProphet мы рассмотрели недавний выпуск NeuralProphet, который включает в себя несколько вариантов вероятностного прогнозирования с использованием конформного прогнозирования, включая реализацию одного из самых популярные модели Conformalized Quantile Regression (CQR). Если вы не знакомы с CQR, вы можете прочитать об этом в моей статье на Medium Как предсказывать квантили более разумным способом (или «Прощай, квантильная регрессия, привет, конформализованная квантильная регрессия)».

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

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

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

# specify quantiles 
quantile_lo, quantile_hi = 0.05, 0.95
quantiles = [quantile_lo, quantile_hi]
n_lags = 7
n_forecasts = 7

m_multistep_quantile_regression = NeuralProphet(
    n_forecasts=n_forecasts,
    growth='off',
    yearly_seasonality=False,
    weekly_seasonality=False,
    daily_seasonality=False,
    n_lags=n_lags,
    learning_rate=0.01,
    quantiles = quantiles
)

%%time
random_seed = 0

# Concatenate train_df and val_df as full training set
set_random_seed(random_seed)
metrics_quantile = m_multistep_quantile_regression.fit(pd.concat([train_df,
  val_df]), freq="D")

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

Мы уже закончили? Не совсем — помните, что классическая регрессия квантилей не дает калиброванных интервалов прогнозирования. Просто потому, что мы указали квантили 5% и 95% в качестве списка пожеланий, может не означает, что 90 % контрольных точек будут в пределах этого интервала прогнозирования.

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

Теперь мы завершаем последний шаг — «конформировать» нашу модель вероятностного прогнозирования.

Все, что нам нужно сделать, это вызвать метод .conformal_predict() в нашей модели квантильной регрессии; мы используем калибровочный набор, который был отложен. Этот шаг направлен на исправление интервалов прогнозирования, созданных квантильной регрессией, чтобы они могли обеспечить заявленное покрытие в соответствии с выбранным уровнем достоверности 90%.

method = "naive"
alpha = 0.1
plotting_backend = "plotly"  # "plotly", None

naive_multistep_forecast_conformal_test_df = m_multistep_quantile_regression.conformal_predict(
    test_df,
    calibration_df=cal_df,
    alpha=alpha,
    method=method,
    plotting_backend=plotting_backend,
)

Как часть результатов, NeuralProphet создает график, показывающий, как ширина выбранного интервала (y_hat-q1, y_hat+q1) изменяется в зависимости от того, на сколько шагов вперед мы прогнозируем. Ширина интервала прогнозирования отражает множество факторов, в том числе модели потребления электроэнергии в течение недели.

На графике выше мы наблюдаем, как Conformal Prediction корректирует прогнозы NeuralProphet.

Теперь мы используем более мощный метод CQR (Conformalized Quantile Regression).

method = "cqr"
alpha = 0.1
plotting_backend = "plotly"  # "plotly", None

cqr_multistep_forecast_conformal_test_df = m_multistep_quantile_regression.conformal_predict(
    test_df,
    calibration_df=cal_df,
    alpha=alpha,
    method=method,
    plotting_backend=plotting_backend,
)

На графике выше мы рассмотрели, как работает прогнозирование на шаг вперед; давайте теперь посмотрим на прогнозы на семь дней вперед.

Как мы видим, CQR успешно предоставил интервалы прогнозирования на 7 дней вперед.

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

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

Использованная литература:

  1. «Вероятностное прогнозирование с конформным прогнозированием и NeuralProphet»
  2. «Бенчмаркинг Neural Prophet. Часть I — Neural Prophet против Facebook Prophet.
  3. «Бенчмаркинг Neural Prophet. Часть II — изучение набора данных по электроэнергии»
  4. «Интервалы прогнозирования соревнований по прогнозированию M4»
  5. Как более разумно предсказывать квантили (или «Прощай, квантильная регрессия, здравствуй, конформная квантильная регрессия).
  6. https://pypi.org/project/neuralprophet/
  7. Учебное пособие по конформному прогнозированию с использованием Energy Hospital Load