Здравствуйте, читатели, в этой статье я собираюсь объяснить свой подход к созданию системы прогноза потребления энергии во Франции (столице). Такого рода проблематика более или менее связана с частью моей работы в EDF Energy, но эта работа была проделана в мое свободное время, чтобы завершить мою наностепеню инженера-машиностроителя Udacity.

В этой статье будет описание данных, используемых для этого проекта, объяснение подхода, используемого для ежедневного прогноза потребления и получасовой версии.

Исследование набора данных

В этом случае данные для создания модели:

  • RTE, менеджер энергетической сети во Франции, они создали открытую платформу данных для доступа к различным наборам данных в сети.
  • Набор данных GEOFLA, который дает вам информацию о количестве жителей в городе и районе.
  • Погода под землей. Мне нужно удалить этот источник данных с веб-сайта (я сосредотачиваюсь на метеостанциях в аэропортах), и я выбираю метеостанции, у которых достаточно данных за период, измеренный RTE. Я сосредотачиваю свой анализ данных на температуре наружного воздуха и скорость ветра.

Что касается погодных условий, я решил создать национальный набор данных о погоде, где в основном каждый регион имеет свою метеостанцию, эти станции взвешиваются по количеству людей, которые находятся в этом регионе (эта информация поступает из набора данных GEOFLA). При анализе данных я предпочитаю преобразовывать среднюю мощность, потребляемую от RTE, в энергию (в МВтч).

На следующем рисунке показано среднее потребление энергии во Франции за последние годы.

Этот рисунок иллюстрирует сезонность энергопотребления во Франции.

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

Изучение почасового эффекта в зависимости от дня в году

Исследование потребления месяца года и дня недели.

Эти две цифры идеально подходят для иллюстрации того, что ежедневное потребление связано с моментом года и днем ​​недели. Но этого понимания недостаточно для создания модели прогноза. Очень популярным подходом, который используется для прогнозирования потребления энергии, является изучение дневного потребления в зависимости от средней дневной температуры наружного воздуха. Этот метод называется PTG for Power Temperature Gradient, и вы можете найти множество публикаций, основанных на этом подходе.

На следующем рисунке представлена ​​модель, используемая для прогноза.

Модель представляет собой кусочную регрессию, в которой зимняя часть представлена ​​линейной регрессией (включая потребности в отоплении и бытовых приборах), а летняя часть - постоянной частью (только бытовые приборы). Эта модель будет эталоном для следующей части.

Ежедневный прогноз

Для создания модели набор данных будет разделен между обучающим набором и тестовым набором, выбор образцов для наборов будет случайным. Это представляет:

  • 2337 образцов для обучающей выборки
  • 585 образцов для тестового набора

Это проблема регрессии, поэтому будут протестированы следующие модели из scikit learn:

Это личный выбор различных моделей, и есть много других моделей, которые можно попробовать, но для начала, я думаю, этого было достаточно. Мне нужно настроить различные модели и найти наилучшие параметры для использования. Я использовал k-кратный подход к обучающей выборке (я создал десять складок), чтобы проверить различные параметры. Я пригласил вас проверить мой отчет, чтобы увидеть, какие параметры были выбраны для различных моделей.

Чтобы проверить влияние входных данных на модели, я протестировал различные входные данные:

  • только наружная температура
  • температура наружного воздуха и скорость ветра
  • температура наружного воздуха и месяц года и день недели

Чтобы облегчить использование входных данных, мне нужно нормализовать наборы. Чтобы оценить точность модели, я использовал метрику r²score, которая используется для задачи регрессии. Но этой метрики недостаточно для оценки качества алгоритма, вторая метрика, которую я буду использовать, - это время создания модели. В следующей таблице показано изменение показателя результативности в зависимости от используемой модели.

Эта таблица позволяет сделать следующие выводы:

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

Но, как я сказал ранее, r²score недостаточно, в следующей таблице указано время для создания модели в случае добавления временных характеристик к начальным входным данным.

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

Этот рисунок показывает нам, что размер обучающей выборки оказывает явное влияние на полиномиальный регрессор, поэтому другие модели кажутся менее важными (нейронная сеть довольно быстро показывает хорошую эффективность).

Получасовой прогноз

В этой части мы будем использовать все результаты, полученные ранее (по сути, использованные функции времени). Я буду тестировать те же модели, что и для ежедневного прогноза, и использовать те же метрики.

Моей эталонной моделью будет модель ARIMA. Эта модель довольно популярна для прогнозирования временных рядов (но не требует рандомизации наборов). Эти наборы состоят из:

  • 112176 образцов для обучающей выборки
  • 28080 образцов для тестового набора

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

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

  • регрессор дерева решений
  • K-ближайший сосед

Вывод

Эта работа была использована для завершения моей нано-степени, это мой подход, не единственный, и я думаю, что есть много вещей, которые можно попробовать, например, метод глубокого обучения или обучение с подкреплением.

Я приглашаю вас использовать датасеты этого проекта, чтобы попытаться создать свою (лучшую ?!) модель, и если у вас есть комментарии, напишите их ниже.

Первоначально опубликовано на сайте the-odd-dataguy.com 20 октября 2017 г.