Применение решений науки о данных для решения задач в области возобновляемых источников энергии.

Введение

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

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

Данные общедоступны на Kaggle и состоят из 14 месяцев выходной мощности, местоположения и данных о погоде. Кроме того, блокноты, используемые для этого анализа, доступны на Github. Остальные разделы этой статьи будут посвящены обработке данных, моделированию, результатам и выводам.

Обработка данных

Доступные переменные в данных изучаются, визуализируются и предварительно обрабатываются перед передачей в алгоритмы машинного обучения.

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

Набор данных состоит из 21 045 строк и 17 столбцов. Давайте изучим доступные столбцы в наборе данных, используя функции в библиотеке анализа данных pandas-Python.

Как показано выше, в наборе данных нет пропущенных значений (ура!!). Кроме того, столбец «YRMODAHRMI» был удален, поскольку он не интуитивно понятен и не содержит описания. Целевой переменной является PolyPwr (выходная мощность).

Кроме того, пять верхних строк набора данных показаны ниже:

Далее давайте проверим распределение целевой переменной. Приведенная ниже гистограмма не показывает значительного перекоса, хотя имеется ограниченное представление выходной мощности выше 30 Вт. Следовательно, не ожидается дополнительных трудностей при прогнозировании целевой переменной из-за ее распределения в доступном наборе данных.

Пока все хорошо. Теперь давайте визуализируем корреляцию между доступными функциями и выходной мощностью.

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

Разработка функций

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

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

# Encode location data
df_with_location_en = pd.get_dummies(df, columns=['Location'], drop_first=True)
# Encode season data
df_with_loc_season_en = pd.get_dummies(df_with_location_en, columns=['Season'], drop_first=True)

Во-вторых, давайте создадим циклические функции, используя месячные и часовые данные. Следует отметить, что доступны данные только между 10:00 и 15:00, что исключает период, когда системы не должны вырабатывать электроэнергию.

# Define time bounds in data
min_hour_of_interest = 10
max_hour_of_interest = 15
# Calculate time lapse since onset of power generation
df_with_loc_season_en['delta_hr']= df_with_loc_season_en.Hour -
                                   min_hour_of_interest
# Create cyclic month features
df_with_loc_season_en['sine_mon']=
                  np.sin((df_with_loc_season_en.Month - 1)*np.pi/11)
df_with_loc_season_en['cos_mon']= 
                  np.cos((df_with_loc_season_en.Month - 1)*np.pi/11)
# Create cyclic hour features
df_with_loc_season_en['sine_hr']= 
  np.sin((df_with_loc_season_en.delta_hr*np.pi/(max_hour_of_interest
  - min_hour_of_interest)))
df_with_loc_season_en['cos_hr']= 
  np.cos((df_with_loc_season_en.delta_hr*np.pi/(max_hour_of_interest
  - min_hour_of_interest)))

Дополнительный корреляционный анализ, включая вновь созданные функции, показывает идеальную корреляцию между косинусом функций даты и их фактическими значениями (Месяц и Час). Следовательно, в процессе моделирования функции «Месяц» и «Час» отбрасываются.

Окончательный список функций, используемых для моделирования, показан ниже:

selected_columns = ['Latitude', 'Humidity', 'AmbientTemp',  
                    'PolyPwr', 'Wind.Speed', 'Visibility', 
                    'Pressure', 'Cloud.Ceiling', 'Location_Grissom', 
                    'Location_Hill Weber', 'Location_JDMT', 
                    'Location_Kahului', 'Location_MNANG', 
                    'Location_Malmstrom', 'Location_March AFB', 
                    'Location_Offutt', 'Location_Peterson', 
                    'Location_Travis', 
                    'Location_USAFA','Season_Spring', 
                    'Season_Summer', 'Season_Winter', 'sine_mon', 
                    'cos_mon', 'sine_hr', 'cos_hr']

Разделение данных

Весь набор данных разделен на 80% обучающих данных и 20% тестовых данных. Тестовые данные сохраняются и невидимы на протяжении всей настройки гиперпараметров и обучения различных моделей.

Моделирование

Были разработаны три модели (случайный лес — RF, машина повышения градиента света — LGBM и глубокая нейронная сеть — DNN) и многоуровневый ансамбль, которые сравнивались с базовой моделью (K ближайших соседей — KNN).

Показатели

Метрика R-квадрат является окончательной метрикой для выбора наиболее эффективной модели в этом анализе. Другие показатели, полезные для оценки эффективности выбранных моделей, включают среднеквадратичную ошибку (RMSE) и среднюю абсолютную ошибку (MAE).

R-квадрат

СКО

МАЭ

Значения R-квадрата варьируются от 0 до 1, и чем выше, тем лучше, в то время как значения RMSE и MAE имеют те же единицы, что и выходная мощность (Вт), и чем меньше, тем лучше.

Настройка гиперпараметров

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

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

Наложение моделей

Четыре разрозненные модели (KNN, DNN, RF и LGBM) были объединены с помощью модуля суммирования регрессора в библиотеке машинного обучения Scikit-learn-python. В качестве мета-обучения использовалась простая модель линейной регрессии, которая была обучена на четырехкратно проверенных предсказаниях базовых моделей, а также на исходных входных функциях.

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

Полученные результаты

Оценки перекрестной проверки

Оценки R-квадрата перекрестной проверки (CV) для 1000 случайных перестановок гиперпараметров для разных алгоритмов показаны на диаграмме ниже:

Как показано на диаграмме, модель LGBM наиболее чувствительна к выбору гиперпараметров, а KNN — наименее чувствительна.

Далее, лучшие оценки CV для каждого типа алгоритма отображаются ниже:

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

Оценки тестовых данных

Производительность каждой модели оценивается с использованием набора задержек, который составляет 20% всего набора данных. Результаты приведены ниже:

Модель с накоплением имеет лучшую общую производительность с улучшением на 10% по сравнению с моделью KNN (базовая). Кроме того, модель LGBM является лучшей базовой моделью по всем рассмотренным показателям.

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

Важность функции

Используя модели LGBM и RF с возможностью расчета важности признаков, в приведенной ниже таблице показана масштабированная важность 5 главных признаков, используемых при прогнозировании выходной солнечной энергии.

Температура окружающей среды, влажность, потолок облачности и давление присутствуют в 5 основных функциях как для моделей LGBM, так и для моделей RF. Ранжирование важности признаков, полученное с использованием модели RF, согласуется с 5 лучшими результатами, опубликованными Pasion et. др., 2020.

Выводы

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

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

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

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



Рекомендации

Пасион, К.; Вагнер, Т .; Кошник, К.; Шульдт, С .; Уильямс, Дж. и Халлинан, К. Моделирование машинного обучения горизонтальной фотогальваники с использованием данных о погоде и местоположении. Energy 2020, 13, 2570; doi: 10.3390/en13102570.

Руководство пользователя Scikit-learn 1.0.2