Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Машинное обучение в энергоснабжении

Покупка
Новинка
Артикул: 853632.01.99
Доступ онлайн
500 ₽
В корзину
Содержит основные сведения о машинном обучении применительно к вопросам энергоэффективности зданий мегаполиса. Рассмотрены вопросы обработки входных данных, обучения модели и интерпретации результатов ее работы, а также примеры практического применения методов машинного обучения для закрепления теоретических знаний. Предназначено для обучающихся направления 13.04.02 «Электроэнергетика и электротехника» (профиль «Цифровизация электротехнических комплексов и систем нефтегазохимических производств»). Подготовлено на кафедре электропривода и электротехники.
Цвенгер, И. Г. Машинное обучение в энергоснабжении : учебное пособие / И. Г. Цвенгер ; Минобрнауки России, Казан. нац. исслед. технол. ун-т. - Казань : Изд-во КНИТУ, 2024. - 112 с. - ISBN 978-5-7882-3489-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2198901 (дата обращения: 04.03.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации 
Казанский национальный исследовательский 
технологический университет           
И. Г. Цвенгер   
МАШИННОЕ ОБУЧЕНИЕ
В ЭНЕРГОСНАБЖЕНИИ   
Учебное пособие                      
Казань 
Издательство КНИТУ 
2024 


УДК 378.147:620.9(075) 
ББК Ч481.253.1:31.19я 
Ц26  
Печатается по решению редакционно-издательского совета  
Казанского национального исследовательского технологического университета  
Рецензенты: 
д-р техн. наук, проф. Г. В. Вагапов 
канд. техн. наук, доц. Т. Х. Мухаметгалеев               
Ц26 
Цвенгер И. Г. 
Машинное обучение в энергоснабжении : учебное пособие / И. Г. Цвенгер; 
Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань :  
Изд-во КНИТУ
, 2024. – 112 с.  
ISBN 978-5-7882-3489-2  
Содержит основные сведения о машинном обучении применительно к вопросам энергоэффективности зданий мегаполиса. Рассмотрены вопросы обработки 
входных данных, обучения модели и интерпретации результатов ее работы, 
а также примеры практического применения методов машинного обучения для закрепления теоретических знаний. 
Предназначено для обучающихся направления 13.04.02 «Электроэнергетика 
и электротехника» (профиль «Цифровизация электротехнических комплексов 
и систем нефтегазохимических производств»). 
Подготовлено на кафедре электропривода и электротехники.   
УДК 378.147:620.9(075) 
ББК Ч481.253.1:31.19я 
ISBN 978-5-7882-3489-2 
© Цвенгер И. Г., 2024  
© Казанский национальный исследовательский 
технологический университет, 2024  
2


СОДЕРЖАНИЕ  
ВВЕДЕНИЕ ........................................................................................................................................ 4 
1. РАБОТА С ДАННЫМИ ............................................................................................................... 5
1.1. Среда разработки и этапы исследования ............................................................... 5 
1.2. Загрузка данных ................................................................................................................ 6 
1.3. Первичный анализ данных ........................................................................................... 8 
1.4. Интенсивность использования энергии 
................................................................. 
10 
1.5. Поиск зависимостей 
....................................................................................................... 
13 
1.6. Отсутствующие и аномальные данные 
................................................................... 
19 
1.7. Разведочный анализ данных 
...................................................................................... 
27 
1.8. Поиск взаимосвязей ...................................................................................................... 
31 
1.9. Конструирование и выбор признаков .................................................................... 
36 
1.10. Выбор базового уровня и разделение данных ................................................ 
48 
2. ОБУЧЕНИЕ МОДЕЛИ 
.............................................................................................................. 
51
2.1. Заполнение отсутствующих значений .................................................................... 
51 
2.2. Масштабирование признаков (нормализация) 
................................................... 
52 
2.3. Оценка и выбор модели 
............................................................................................... 
54 
2.4. Градиентный бустинг (Gradient Boosting) .............................................................. 
59 
2.5. Библиотеки, реализующие градиентный бустинг .............................................. 
61 
2.6. Описание класса GradientBoostingRegressor 
....................................................... 
62 
2.7. Определение гиперпараметров 
................................................................................ 
67 
2.8. Настройка гиперпараметров 
...................................................................................... 
68 
2.9. Описание процесса перекрестной проверки (Cross Validation) .................. 
70 
2.10. Описание класса RandomizedSearchCV 
............................................................... 
71 
2.11. Анализ результатов настройки гиперпараметров 
........................................... 
74 
2.12. Описание класса GridSearchCV ............................................................................... 
76 
2.13. Зависимость точности модели от числа деревьев .......................................... 
79 
2.14. Глубина деревьев в градиентном бустинге 
........................................................ 
81 
2.15. Минимальное число объектов в листе 
................................................................. 
82 
2.16. Оценка точности и производительности модели ............................................ 
84 
3. ИНТЕРПРЕТАЦИЯ РЕЗУЛЬТАТОВ РАБОТЫ МОДЕЛИ 
................................................. 
94
3.1. Загрузка данных для обучения модели ................................................................. 
95 
3.2. Интерпретация модели 
................................................................................................. 
97 
3.3. Анализ важности признаков .................................................................................... 102 
3.4. Анализ ошибок в прогнозе 
....................................................................................... 104 
ЗАКЛЮЧЕНИЕ ............................................................................................................................ 108 
ЛИТЕРАТУРА ............................................................................................................................... 110  
3 


ВВЕДЕНИЕ 
Машинное обучение (Machine Learning – ML) – это область 
исследования искусственного интеллекта, связанная с разработкой 
и изучением статистических алгоритмов, которые могут эффективно 
обобщать и, таким образом, выполнять задачи без явных инструкций. 
Использование методов машинного обучения для повышения эффективности работы электрооборудования в энергетике все больше 
набирает обороты, доказывая свою эффективность множеством примеров успешного внедрения ML в технологические процессы крупнейших 
компаний мира. Например, IT-компания Google планирует использовать 
для работы всех своих структур только возобновляемую энергетику, несмотря на то что ее источники являются пока еще сравнительно дорогими, нестабильными и имеющими ограниченную надежность. Взять 
хотя бы непредсказуемость ветровой нагрузки. Для решения этой проблемы Google применяет технологии искусственного интеллекта: была 
создана нейросеть, которая предсказывает силу ветра на несколько дней 
вперед для определения оптимального соотношения хранения/отдачи 
энергии. За счет внедрения данной технологии удалось снизить расходы 
более чем на 20 %. Специалисты Google совместно с британской компанией DeepMind с использованием методов машинного обучения 
также разработали систему искусственного интеллекта, управляющую 
охлаждением дата-центров, что позволило сократить энергозатраты на 
40 %. А норвежская энергетическая компания DNV недавно представила свое обстоятельное исследование «Умная возобновляемая энергетика: преимущества, риски и будущее использования искусственного 
интеллекта в преобразовании энергии солнца и ветра». В нем подробно 
проанализировано, какую пользу могут получить солнечная и ветроэнергетика от использования машинного обучения в технологических 
процессах генерации энергии. 
Таким образом, актуальность и высокая эффективность применения методов машинного обучения в электроэнергетике и энергоснабжении в мировых масштабах уже многократно доказана на практике, 
и сейчас стоит задача массового внедрения этих передовых достижений 
в нашей стране. Поэтому при подготовке данного пособия основное 
внимание было уделено разработке, правильному выбору и применению наиболее часто используемых методов машинного обучения применительно к задачам электроэнергетики (с учетом специфики направления подготовки студентов). 
4 


1. РАБОТА С ДАННЫМИ 
Предварительная обработка данных является одним из самых важных этапов в машинном обучении. От того, как будет проведен предварительный анализ исходных данных и конструирование новых, зависит 
успех всей работы. 
1.1. Среда разработки и этапы исследования 
Рассмотрим методику разработки экспертной системы для классификации зданий по критерию энергосбережения по историческим данным об их энергопотреблении на примере Нью-Йорка. Загрузка и последующая обработка данных для обучения модели будет проводиться 
в 
Colaboratory 
(Colab), 
поскольку 
этот 
облачный 
сервис 
(https://colab.research.google.com/) позволяет составлять и выполнять 
код программы Python в браузере. Использование данного сервиса является отличным решением по многим причинам: 
– не требуется никакой дополнительной настройки компьютера; 
– обеспечен бесплатный доступ к графическим процессорам; 
– имеется общий доступ к документам для работы в группе; 
– большинство библиотек установлено по умолчанию; 
– ресурсозатратные задачи решаются на серверах Google, не перегружая персональный компьютер. 
Для анализа в данном случае был выбран именно Нью-Йорк по 
нескольким причинам: 
– город представляет собой мегаполис с огромным жилищным
фондом, что подразумевает репрезентативную выборку записей по разным типам зданий; 
– наличие довольно большого числа зданий, которые не эксплуатируются и не потребляют энергоресурсы; 
– небрежность, грубые ошибки и опечатки при оформлении многих документов.  
В ходе анализа все эти факторы предоставляют возможность 
отойти от привычного использования современных, тщательно выверенных и структурированных сведений, хранящихся в современных 
5 


архивах, позволяя получить практические навыки работы с реальными 
данными. 
Конкретной целью предстоящего анализа является обучение модели для предсказания рейтинга энергопотребления здания и выявление 
признаков с наибольшим влиянием на результаты ее работы. Эта задача 
относится к классу задач машинного обучения с преподавателем. Подобное обучение подразумевает наличие всех необходимых признаков 
и самого целевого признака, на основе которых выполняется предсказание и проверяется его точность. Предполагается, что целевой признак 
является непрерывной величиной, поэтому можно использовать регрессионный анализ.  
Регрессионный анализ – это набор статистических методов исследования влияния одной или нескольких независимых переменных (признаков) на зависимую переменную (целевой признак). В данном случае 
необходимо построить как можно более точную модель,  которая на выходе представляет легко интерпретируемые результаты. Следует отметить, что правильно поставленная задача уже содержит в себе решение. 
Этапы решения данной задачи: 
1. Загрузка и первичный анализ данных. 
2. Очистка и форматирование данных. 
3. Изучение природы данных и анализ их влияния друг на друга. 
4. Разведочный анализ данных (РАД). 
5. Конструирование и выбор значимых признаков. 
6. Сравнение точности предсказания разных моделей. 
7. Гиперпараметрическая настройка параметров модели. 
8. Оценка точности предсказания модели на тестовых данных. 
9. Интерпретация результатов работы модели. 
1.2. Загрузка данных 
Полное название файла данных состоит из следующих частей: 
1. Energy_and_Water_Data  
2. Disclosure_for_Local_Law_84_2017 
3. Data_for_Calendar_Year_2016 
6 


Уже из самого названия файла можно получить представление 
о физической, географической, временной и законодательной природе 
данных. Данный файл можно скачать с сайта Нью-Йорка. Пример загрузки файла: 
 
Листинг 1. Загрузка данных и определение размера датафрейма 
# Загружаем необходимые библиотеки pandas, drive 
import pandas as pd 
from google.colab import drive 
# Подключаем директорию на Google диск (drive.google.com) 
drive.mount('/content/drive') 
# Указываем имя файла 
fname = "Energy_and_Water_Data_Disclosure_for_Local_Law_84.csv" 
# Директория где лежит файл на Google диск 
dir = '/content/drive/MyDrive/Colab Notebooks/ML-magistr/data/' 
# Загружаем данный из файла в датафрейм df 
df = pd.read_csv(dir + fname, delimiter = ',') 
# Выводим информацию о датафрейме 
print('Всего в датафрейме: ', df.shape[0], ' записей и ', 
df.shape[1], ' признаков (колонок)') 
Out:Всего в датафрейме: 11746 записей и 60 признаков (колонок) 
 
Датафрейм (DataFrame) – основной тип информации в библиотеке 
Pandas, представляющий собой двумерную информационную структуру в виде таблицы с разными типами столбцов. Вся дальнейшая работа ведется на его основе. 
Загруженный набор данных содержит 11746 строк и 60 столбцов 
(признаков). В листинге используются следующие библиотеки и классы: 
1) Pandas – это библиотека Python для обработки и анализа структурированных данных, ее название происходит от термина panel data 
(панельные данные) – так называют информацию, структурированную 
в виде таблиц;  
2) Drive – это класс, импортируемый из библиотеки google.colab, 
необходимый для доступа к Google диск. 
Следует также обратить внимание, что функция read_csv() содержит параметр delimiter, который определяет символ или регулярное выражение разделителя записей. В нашем случае delimiter = ','. Однако это 
может означать и табулятор, и разделитель ';'. Поэтому при ошибках чтения следует уточнить, что является разделителем в каждом конкретном 
случае. 
7 


1.3. Первичный анализ данных 
Проведем первичный анализ исследуемых данных. С этой целью 
выведем структуру и часть данных из датафрейма: 
 
Листинг 2. Вывод первых трех строк датафрейма на экран 
# Подгружаем библиотеку numpy 
import numpy as np 
# Показывать все колонки датафрейма df 
pd.set_option('display.max_columns', df.shape[1]) 
# Вывести 3 верхние строки датафрейма 
df.head(3) 
 
В данном листинге подключается библиотека NumPy (Numerical 
Python extensions, или «Числовые расширения Python»). Это открытая 
бесплатная библиотека для языка программирования Python, которую 
применяют для работы с многомерными массивами и математических 
вычислений над массивами, начиная с базовых функций и заканчивая 
линейной алгеброй.  
Результатом работы листинга 2 будет выведенный на экран частично изображенный датафрейм (рис. 1). 
 
 
 
Рис. 1. Сектор данных, выведенных на экран 
 
Из рисунка можно сделать следующие выводы: 
1. Признак Energy Star score имеет ранжирование в процентах (от 
1 до 100), которое рассчитывается на основе самостоятельно заполняемых владельцами зданий отчетов об энергопотреблении за год. Этот показатель используется для сравнения энергоэффективности зданий. 
8 


2. В датафрейме есть отсутствующие значения (Not Available). 
3. Данные содержат признаки, дублирующие друг друга, а также 
такие, которые невозможно проанализировать (например, BBL). 
4. В данных есть признаки, явно содержащие числа, но при этом 
они сохранены как объекты, которые необходимо преобразовать в числа.  
Оценкой энергоэффективности является параметр Energy Star 
score (далее – score), поэтому в дальнейшем следует научить модель его 
предсказывать. Записи с отсутствующей оценкой score в этом помочь не 
смогут, и их придется удалить. 
Следующий код (листинг 3):  
– заменяет все объекты Not Available на тип not a number (np.nan), 
который можно интерпретировать как числа;  
– переименовывает Energy Star score в score и удаляет записи с его 
отсутствующим значением. 
 
Листинг 3. Удаление записей без значений параметра score 
# Заменим Not Available на тип np.nan 
df = df.replace( 
   {'Not Available': np.nan} 
) 
# Переименуем 'ENERGY STAR Score' на  score 
df = df.rename( 
   columns = {'ENERGY STAR Score': 'score'} 
)  
# Получим записи с отсутствующей оценкой score 
no_score = df[df['score'].isna()] 
# Получим записи с присутствующей оценкой score 
df = df[df['score'].notnull()] 
print('Удалено записей без оценки score: ', no_score.shape[0]) 
print('Осталось записей с оценкой score: ', df.shape[0]) 
Out: Удалено записей без оценки score:  2104 
     Осталось записей с оценкой score:  9642 
 
Так как регрессионный анализ проводится только с числами, то 
необходимо максимально преобразовать из строковых переменных 
в числовые типы данных все, имеющее вид чисел: 
 
Листинг 4. Конвертация типов 
# Создаем список численных размерностей 
num_col = [ 
   'ft²',  
   'kBtu',  
   ' CO2e',  
   'kWh',  
9 


   'therms',  
   'gal',  
   'score' 
] 
# Перебираем все столбцы датафрейма 
for col in list(df.columns): 
  # Перебираем все размерности 
  for num in num_col: 
    # Если есть размерность в названии столбца 
    if (num in col): 
        # При выполнении условия преобразовать в float 
        df[col] = df[col].astype(float) 
        # закончить перебор num_col 
        break 
 
Следует отметить, что в Python нет открывающих/закрывающих 
конструкций вида фигурных скобок { }, как в C++, или begin end, как 
в Pascal. Все вложенные конструкции определяются только отступом, 
поэтому необходимо строго следовать этому правилу. 
Так как целью является предсказание параметра Energy Star score, 
обратимся к первоисточнику, чтобы более глубоко изучить параметры 
анализируемого датафрейма. 
1.4. Интенсивность использования энергии 
При сравнении типов зданий с использованием программы 
Portfolio Manager интенсивность использования энергии (EUI) является 
одним из ключевых показателей, который отражает потребление энергии клиентами в конкретном здании в зависимости от его размеров, 
типа использования и других характеристик. В этой программе параметр EUI измеряется в единицах энергии на квадратный фут в год. 
Он вычисляется путем деления общего потребления энергии зданием за 
год (измеряется в kBtu или GJ) на его общую площадь (измеряется 
в квадратных футах или квадратных метрах). Portfolio Manager автоматически преобразует данные в kBtu или GJ, поэтому достаточно указать 
информацию об использовании энергии в том виде, в котором она представлена в счетах за коммунальные услуги. 
В данной программе доступны такие параметры энергоэффективности зданий, как Site EUI и Source EUI. Между этими параметрами 
10 


Похожие

Доступ онлайн
500 ₽
В корзину