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
  • Установка
  • Импорт
  • Входные данные
  • Первая модель
  • Визуализация
  • Улучшенная модель

Инструкция по началу работы

На этой странице содержится подробная информация о том, как построить простую модель с помощью NeuralProphet с минимальными функциями.

Установка

NeuralProphet можно установить с помощью pip:

$ pip install neuralprophet

Если вы планируете использовать пакет в блокноте Jupyter, мы рекомендуем установить «живую» версию. Это позволит вам включить pogress='plot' в функции поезда, чтобы получить живой график потерь поезда (и проверки):

$ pip install neuralprophet[live]

Для получения самой актуальной версии вы можете клонировать её напрямую сGitHub <https://github.com/ourownstory/neural_prophet>_:

$ git clone https://github.com/ourownstory/neural_prophet.git
$ cd neural_prophet
$ pip install .

Если вы планируете использовать NeuralProphet в Google Colab, используйте следующие команды, чтобы избежать конфликтов с предустановленными пакетами в Colab:

!pip uninstall -y torch notebook notebook_shim tensorflow tensorflow-datasets prophet torchaudio torchdata torchtext torchvision

!pip install neuralprophet
or
!pip install git+https://github.com/ourownstory/neural_prophet.git

Импорт

Теперь вы можете использовать NeuralProphet в своем коде:

from neuralprophet import NeuralProphet

Входные данные

import pandas as pd

data_location = "https://raw.githubusercontent.com/ourownstory/neuralprophet-data/main/datasets/"

df = pd.read_csv(data_location + "wp_log_peyton_manning.csv")
df.head()
ds
y

0

2007-12-10

9.5908

1

2007-12-11

8.5196

2

2007-12-12

8.1837

3

2007-12-13

8.0725

4

2007-12-14

7.8936

Первая модель

m = NeuralProphet()
m.set_plotting_backend("plotly-static")  # show plots correctly in jupyter notebooks
metrics = m.fit(df)
WARNING - (NP.forecaster.fit) - When Global modeling with local normalization, metrics are displayed in normalized scale.
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Dataframe freq automatically defined as D
INFO - (NP.config.init_data_params) - Setting normalization to global as only one dataframe provided for training.
INFO - (NP.utils.set_auto_seasonalities) - Disabling daily seasonality. Run NeuralProphet with daily_seasonality=True to override this.
INFO - (NP.config.set_auto_batch_epoch) - Auto-set batch_size to 32
INFO - (NP.config.set_auto_batch_epoch) - Auto-set epochs to 141
WARNING - (NP.config.set_lr_finder_args) - Learning rate finder: The number of batches (93) is too small than the required number for the learning rate finder (237). The results might not be optimal.

После того как модель обучена, мы можем использовать её для предсказаний на основе обученной модели. Здесь мы прогнозируем внутри выборки по нашим данным для оценки соответствия модели. То же самое мы могли бы сделать и для контрольной выборки.

predicted = m.predict(df)
forecast = m.predict(df)
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils.return_df_in_original_format) - Returning df with no ID column
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils.return_df_in_original_format) - Returning df with no ID column

Визуализация

На основе полученных прогнозов вы можете визуализировать их.

Это простая модель с трендом, недельной сезонностью и годовой сезонностью, оцененная по умолчанию. Вы также можете посмотреть на отдельные компоненты по отдельности, как показано ниже.

m.plot_components(forecast)

Значения отдельных коэффициентов также могут быть представлены в виде графика ниже для получения более глубоких инсайтов.

Улучшенная модель

Модель может быть улучшена путем добавления дополнительных функций, таких как авторегрессия и неопределенность.

В этой модели мы добавляем авторегрессионные термины и учитываем неопределенность. Количество терминов можно определить с помощью аргумента n_lags. Интервалы неопределенности можно добавить, установив аргументquantiles

m = NeuralProphet(n_lags=10, quantiles=[0.05, 0.95])
m.set_plotting_backend("plotly-static")
metrics = m.fit(df)
forecast = m.predict(df)
WARNING - (NP.forecaster.fit) - When Global modeling with local normalization, metrics are displayed in normalized scale.
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Dataframe freq automatically defined as D
INFO - (NP.config.init_data_params) - Setting normalization to global as only one dataframe provided for training.
INFO - (NP.utils.set_auto_seasonalities) - Disabling daily seasonality. Run NeuralProphet with daily_seasonality=True to override this.
INFO - (NP.config.set_auto_batch_epoch) - Auto-set batch_size to 32
INFO - (NP.config.set_auto_batch_epoch) - Auto-set epochs to 141
WARNING - (NP.config.set_lr_finder_args) - Learning rate finder: The number of batches (93) is too small than the required number for the learning rate finder (237). The results might not be optimal.
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils._infer_frequency) - Major frequency D corresponds to 99.966% of the data.
INFO - (NP.df_utils._infer_frequency) - Defined frequency is equal to major frequency - D
INFO - (NP.df_utils.return_df_in_original_format) - Returning df with no ID column

После указания шага прогнозирования мы можем построить прогноз.

m.highlight_nth_step_ahead_of_each_forecast(1).plot(forecast)

Познакомьтесь с дополнительными функциями NeuralProphet в наших учебных руководствах и инструкциях.

Last updated 1 year ago

Формат входных данных, ожидаемый пакетом neural_prophet, такой же, как в оригинальном prophet. Он должен содержать две колонки: ds, которая содержит временные метки, и колонку y, которая содержит наблюдаемые значения временного ряда. В этой документации мы будем использовать данные временного ряда о логарифме ежедневных просмотров страницы в Википедии. Данные можно импортировать следующим образом.

Для простой модели с использованием neural_prophet можно подобрать объект класса NeuralProphet следующим образом и вызвать функцию fit. Это позволяет подобрать модель с настройками по умолчанию. Обратите внимание, что частота данных устанавливается глобально. Допустимые настройки частоты временных рядов -

Пейтона Мэннинга
псевдонимы смещения временных рядов pandas