Визуализация прогнозов NeuralProphet
Этот блокнот демонстрирует, какие варианты построения графиков доступны в NeuralProphet.
NeuralProphet поддерживает использование нескольких бэкендов для визуализации, каждый из которых имеет свои преимущества и недостатки:
plotly
: Интерактивные графики, но могут быть медленными для больших наборов данных и не отображаются в версии документации.plotly-static
: Статические графики для отображения в документации.plotly-resampler
: Интерактивные графики, которые работают быстрее с большими наборами данных, но могут некорректно отображаться в некоторых средах.matplotlib
: Статические графики, но скоро будут устаревшими.
Давайте начнем с той же модели, что и в учебниках.
import pandas as pd
from neuralprophet import NeuralProphet, set_log_level
# Отключение сообщений журнала, кроме случаев ошибок
set_log_level("ERROR")
# Загрузка набора данных из CSV-файла с помощью pandas
df = pd.read_csv("https://github.com/ourownstory/neuralprophet-data/raw/main/kaggle-energy/datasets/tutorial04.csv")
# Уменьшение набора данных до двух лет для более наглядного отображения
df = df.iloc[-365 * 2 :]
# Модель и прогнозирование
m = NeuralProphet(
# Отключение точек изменения тренда
n_changepoints=10,
# Отключение компонентов сезонности
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=True,
n_lags=10,
)
m.add_lagged_regressor("temperature")
m.set_plotting_backend("plotly-static")
metrics = m.fit(df)
forecast = m.predict(df)
Постройте прогноз
Постройте прогноз модели и фактические данные.
m.plot(forecast)
Постройте компоненты
Чтобы визуализировать компоненты прогноза, такие как тренд, сезонность и праздники, вы можете использовать метод plot_parameters
. Вы можете выбрать показ всех компонентов или только части с помощью components
. Подробнее смотрите в официальной документации NeuralProphet.
m.plot_components(forecast)
Постройте параметры
Для лучшего понимания модели можно визуализировать параметры модели. Как и в случае с plot_components
, вы можете выбрать визуализацию всех параметров или только некоторой их части.
m.plot_parameters()
Построение нескольких прогнозов
Neuralprophet может генерировать прогнозы на несколько шагов вперед, если указать параметр n_forecasts
# Модель и прогнозирование
m = NeuralProphet(
# Отключение точек изменения тренда
n_changepoints=10,
# Отключение компонентов сезонности
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=True,
n_lags=10,
n_forecasts=10,
)
m.add_lagged_regressor("temperature")
m.set_plotting_backend("plotly-static")
metrics = m.fit(df)
forecast = m.predict(df)
Если мы будем строить наш прогноз, как и раньше, все прогнозы на каждом шаге будут отображены. Однако мы также можем построить каждый прогноз на каждом шаге индивидуально.
m.plot(forecast, forecast_in_focus=4)
Тренд, сезонность и праздники одинаковы для всех прогнозов вперед, поэтому они отображаются только один раз. Но авторегрессия и запаздывающие регрессоры различаются для каждого шага прогнозирования. Если forecast_in_focus
не указан, график компонент показывает долю компонента к каждому шагу прогноза разными цветами. Если указан forecast_in_focus
, график компонент показывает долю компонента указанного шага прогноза.
# Показать только последние 20 дней для лучшего отображения компонентов
m.plot_components(forecast[-20:])
Поскольку параметры одинаковы для всех прогнозов на несколько шагов вперед, они отображаются только один раз.
m.plot_parameters()
Last updated