Работа с панельными данными (несколько временных рядов). NeuralProphet позволяет моделировать локальные и глобальные компоненты.
Мы используем набор данных ERCOT, который содержит данные для нескольких регионов. NeuralProphet требует, чтобы данные были представлены в одной колонке с дополнительной колонкой идентификатора для обозначения региона.
import pandas as pddf = pd.read_csv("https://github.com/ourownstory/neuralprophet-data/raw/main/datasets/multivariate/load_ercot_regions.csv")fig = df.plot(figsize=(15, 5))
Сначала мы определяем базовую модель, которая использует глобальное моделирование. Это означает, что все регионы моделируются вместе.
from neuralprophet import NeuralProphet, set_log_level# Здесь мы используем тот же набор данных, только предобработанный для соответствия формату ввода NeuralProphetdf = pd.read_csv("https://github.com/ourownstory/neuralprophet-data/raw/main/datasets/multivariate/ercot-panel.csv")df.head()# Отключение сообщений журнала ниже уровня ошибкиset_log_level("ERROR")# Базовая модельm =NeuralProphet()m.set_plotting_backend("plotly-static")metrics = m.fit(df, freq="H")forecast = m.predict(df)m.plot(forecast, df_name="NORTH_C")
Затем мы определяем вторую модель, которая использует локальное моделирование. Это означает, что каждый регион моделируется отдельно по тенденции и сезонности.
m =NeuralProphet( trend_global_local="local", seasonality_global_local="local",)m.set_plotting_backend("plotly-static")metrics = m.fit(df, freq="H")forecast = m.predict(df)m.plot(forecast, df_name="NORTH_C")