Урок 1: Основы

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

Если пакет NeuralProphet еще не установлен, обратитесь к руководству по установке.

Загрузка набора данных

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

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 с следующим форматом и характеристиками:

  1. Колонка временного ряда должна иметь название "ds" и содержать значения даты и времени.

  2. Значение столбца должно быть названо "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)

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

m.plot_parameters(components=["trend", "seasonality"])

Last updated