Прогнозирование нагрузки на энергосистему с визуализацией
В этом руководстве мы покажем, как использовать NeuralProphet для прогнозирования нагрузки энергосистемы и визуализации результатов в интерактивном инструменте. Прогноз основан на наборе данных RE-Europe, который моделирует континентальную электроэнергетическую систему Европы, включая потребности в энергии и притоки возобновляемой энергии за период с 2012 по 2014 год. Общий набор данных содержит 1494 узла, которые мы сократим до 5 узлов для целей данного примера.
# Импорт библиотек для работы с данными:
import pandas as pd # Библиотека pandas для анализа и обработки данных
import numpy as np # Библиотека numpy для численных вычислений
# Импорт библиотек NeuralProphet для прогнозирования временных рядов:
from neuralprophet import NeuralProphet, set_log_level # Класс NeuralProphet и функция set_log_level
# Импорт библиотек Plotly для создания визуализаций:
import plotly.graph_objects as go # Модуль go из Plotly для создания статических элементов визуализации
import plotly.express as px # Модуль px из Plotly для создания выразительных диаграмм с минимальным кодом
from plotly.subplots import make_subplots # Функция make_subplots из Plotly для создания подсюжетов
# Импорт библиотек ipywidgets для создания интерактивных элементов:
import ipywidgets as widgets # Модуль widgets из ipywidgets для создания интерактивных элементов в Jupyter Notebook
from ipywidgets import interact_manual # Функция interact_manual из ipywidgets для создания интерактивных элементов управления
# Установка режима визуализации по умолчанию:
plotting_backend = "plotly-static" # Установить режим визуализации по умолчанию на "plotly-static" для статических изображений
Набор данных включает для каждого автобуса и каждого часа года следующую информацию:
нагрузка (МВт)
фактическое производство солнечной энергии (МВт)
прогнозируемое производство солнечной энергии (МВт)
The forecasts are at hour 00 of every day for the next 24 hours.
17545
2014-01-01 01:00:00
1
72.3142
0.0
0.0
17546
2014-01-01 02:00:00
1
67.5617
0.0
0.0
17547
2014-01-01 03:00:00
1
63.0677
0.0
0.0
17548
2014-01-01 04:00:00
1
59.9401
0.0
0.0
17549
2014-01-01 05:00:00
1
58.9296
0.0
0.0
1. Подготовка данных
Чтобы лучше улавливать разные времена года и дни недели, мы добавляем условную сезонность. Для каждого времени года (лето, зима, осень и весна) и будни/выходные моделируется отдельная сезонность.
17545
2014-01-01 01:00:00
1
72.3142
0.0
0.0
0
1
0
0
0
0
1
0
0
0
0
0
17546
2014-01-01 02:00:00
1
67.5617
0.0
0.0
0
1
0
0
0
0
1
0
0
0
0
0
17547
2014-01-01 03:00:00
1
63.0677
0.0
0.0
0
1
0
0
0
0
1
0
0
0
0
0
17548
2014-01-01 04:00:00
1
59.9401
0.0
0.0
0
1
0
0
0
0
1
0
0
0
0
0
17549
2014-01-01 05:00:00
1
58.9296
0.0
0.0
0
1
0
0
0
0
1
0
0
0
0
0
2. Определение модели
Лучшие параметры для модели можно получить с помощью настройки гиперпараметров. Установив квантили, моделируется интервал прогнозирования, а не точный прогноз.
2.1 Запаздывающие и будущие регрессоры
С дополнительной информацией наша модель может стать лучше. Мы используем данные о фактическом производстве солнечной энергии за последние 10 дней в качестве отстающего регрессора и прогноз солнечной активности в качестве будущего регрессора.
2.2 Условные сезонности
3. Обучение модели
Для последующего тестирования нашей модели данные разделяются на обучающие и тестовые. Тестовые данные составляют последние 5% от всего массива данных. Модель обучается на обучающих данных.
4. Визуализация
4.1 Модельные участки
NeuralProphet включает функции построения графиков для изучения прогнозируемых данных. Для обзора функций построения графиков см. учебное пособие по визуализации
4.2 Интерактивный инструмент
Давайте изучим данные более интерактивно. Выбрав дату, будет показан прогноз на следующие 24 часа, что соответствует стандартам индустрии.
Last updated