Bemind
NeuralProphet
NeuralProphet
  • NeuralProphet 1.0.0rc8 документация
  • Инструкция по началу работы
  • Новые уроки
    • Урок 1: Основы
    • Урок 2: Тренды
    • Урок 3: Сезонность
    • Урок 4: Авторегрессия
    • Урок 5: Регрессоры с запаздыванием
    • Урок 6: Будущие регрессоры
    • Урок 7: События и праздники
    • Урок 8: Неопределенность
    • Урок 9: Глобальная модель
    • Урок 10: Валидация и воспроизводимость
    • Следующие шаги
  • Руководства по функциям
    • Коллекция предсказаний
    • Тестирование и кросс-валидация
    • Визуализация прогнозов NeuralProphet
    • Глобальное локальное моделирование
    • Количественная оценка неопределенности
    • Условная сезонность
    • Мультипликативная Сезонность
    • Разреженная авторегрессия
    • Субдневные данные
    • Выбор гиперпараметров
    • Интеграция MLflow
    • Прямая визуализация во время обучения
    • Визуализация архитектуры сети
    • Прогнозирование потребности в энергии: Прогноз нагрузки для больницы в Сан-Франциско
    • Возобновляемая Энергия: Прогнозирование Солнечной Энергии
    • Прогнозирование нагрузки на энергосистему с визуализацией
  • Code Documentation
    • NeuralProphet Class
Powered by GitBook
On this page
  1. Новые уроки

Урок 6: Будущие регрессоры

Last updated 1 year ago

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

import pandas as pd

# Загрузка набора данных для учебного пособия 4 с дополнительным столбцом температуры
df = pd.read_csv("https://github.com/ourownstory/neuralprophet-data/raw/main/kaggle-energy/datasets/tutorial04.csv")
df.head()
ds
y
temperature

0

2015-01-01

64.92

277.00

1

2015-01-02

58.46

277.95

2

2015-01-03

63.35

278.83

3

2015-01-04

50.54

279.64

4

2015-01-05

64.89

279.05

fig = df.plot(x="ds", y=["y", "temperature"], figsize=(10, 6))
from neuralprophet import NeuralProphet, set_log_level

# Отключение сообщений журнала, кроме случаев ошибок
set_log_level("ERROR")

# Модель и прогнозирование
m = NeuralProphet(
    n_changepoints=10,
    yearly_seasonality=True,
    weekly_seasonality=True,
    daily_seasonality=True,
    n_lags=10,
)
m.set_plotting_backend("plotly-static")

# Добавление нового будущего регрессора
m.add_future_regressor("temperature")

# Продолжение обучения модели и создание прогноза
metrics = m.fit(df)
forecast = m.predict(df)
m.plot(forecast)
m.plot_components(forecast, components=["future_regressors"])
m.plot_parameters(components=["future_regressors"])
MAE
RMSE
Loss
RegLoss
epoch

0

67.432861

79.714500

0.789800

0.0

0

1

40.313995

49.790257

0.434656

0.0

1

2

23.730885

29.712715

0.221153

0.0

2

3

13.360303

17.117233

0.094893

0.0

3

4

10.110947

13.336704

0.061117

0.0

4

...

...

...

...

...

...

95

4.837646

6.482005

0.016463

0.0

95

96

4.830614

6.461479

0.016331

0.0

96

97

4.829221

6.457165

0.016324

0.0

97

98

4.823629

6.465248

0.016352

0.0

98

99

4.838150

6.507308

0.016487

0.0

99

100 rows × 5 columns

df_residuals = pd.DataFrame({"ds": df["ds"], "residuals": df["y"] - forecast["yhat1"]})
fig = df_residuals.plot(x="ds", y="residuals", figsize=(10, 6))