Давайте учиться на примерах. Начнем с прогнозирования будущих цен на энергию и изучим основы библиотеки.
Если пакет NeuralProphet еще не установлен, обратитесь к руководству по установке.
Загрузка набора данных
В наших учебных материалах мы работаем с данными о ценах на энергию за 4 года из Испании. Набор данных был опубликован на и содержит много информации, к которой мы вернемся позже. Пока что мы используем подготовленную версию набора данных, которая включает только данные о ежедневных ценах на энергию.
import pandas as pd
# Загрузка набора данных из CSV-файла с помощью pandas
df = pd.read_csv("https://github.com/ourownstory/neuralprophet-data/raw/main/kaggle-energy/datasets/tutorial01.csv")
# Построение графика, показывающего цену (столбец y) во времени (столбец ds)
plt = df.plot(x="ds", y="y", figsize=(15, 5))
При использовании набора данных с NeuralProphet он должен быть представлен в виде DataFrame библиотеки pandas с следующим форматом и характеристиками:
Колонка временного ряда должна иметь название "ds" и содержать значения даты и времени.
Значение столбца должно быть названо "y" и содержать значения с плавающей точкой.
Настройка модели
# Импорт класса NeuralProphet
from neuralprophet import NeuralProphet, set_log_level
# Отключение сообщений журнала, кроме случаев ошибок
set_log_level("ERROR")
# Создание модели NeuralProphet с параметрами по умолчанию
m = NeuralProphet()
# Использование статического режима построения графиков plotly в блокнотах
m.set_plotting_backend("plotly-static")
# Обучение модели на наборе данных (это может занять некоторое время)
metrics = m.fit(df)
Прогнозируй будущее
Для прогнозирования будущих значений нам необходимо расширить наш датафрейм. В нашем примере мы хотим создать прогноз на следующий год (то есть на 365 дней). Затем нам необходимо запустить прогнозирование снова на расширенном датафрейме.
# Создание нового DataFrame, прогнозирующего 365 дней в будущем, с учетом исторических данных
df_future = m.make_future_dataframe(df, n_historic_predictions=True, periods=365)
# Прогнозирование будущих значений
forecast = m.predict(df_future)
# Визуализация прогноза
m.plot(forecast)
Прогноз состоит из следующих компонентов: тренд, годовая и недельная сезонность. Они складываются вместе, чтобы создать прогноз.