Алгоритмы Data Science и их практическая реализация на Python
Покупка
Основная коллекция
Тематика:
Кибернетика
Издательство:
Инфра-Инженерия
Год издания: 2022
Кол-во страниц: 392
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9729-1006-9
Артикул: 791490.01.99
Рассмотрен полный каскад разработки моделей искусственного интеллекта. Проанализирована область Data Science, из которой выделены все необходимые для прикладной сферы алгоритмы машинного обучения, расположенные по уровню возрастания сложности работы с ними.
Для студентов, изучающих информационные технологии. Может быть полезно как начинающим программистам, так и специалистам высокого уровня.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ǮǰǽȞȜȠȜȒȪȭȘȜțȜȐ ǽǮǽȩșȜȐ ǰdzǿȎȒȜȐțȖȘȜȐ ǮǹDZǼǾǶȀǺȉ '$7$6&,(1&( ǶǶȃǽǾǮǸȀǶȅdzǿǸǮȍǾdzǮǹǶǵǮȄǶȍ ǻǮ3<7+21 ȁȥȓȏțȜȓȝȜȟȜȏȖȓ ǺȜȟȘȐȎǰȜșȜȑȒȎ ©ǶțȢȞȎ-ǶțȔȓțȓȞȖȭª 2022
УДК 004.89 ББК 32.813 П83 Р е ц е н з е н т ы : кандидат технических наук, доцент, заведующий кафедрой информационных и автоматизированных производственных систем ФГБОУ ВО «Кузбасский государственный технический университет» И. В. Чичерин; доктор технических наук, профессор РАН, главный научный сотрудник ФГБНУ «Федеральный исследовательский центр угля и углехимии Сибирского отделения Российской академии наук» А. Е. Майоров Протодьяконов, А. В. П83 Алгоритмы Data Science и их практическая реализация на Python : учебное пособие / А. В. Протодьяконов, П. А. Пылов, В. Е. Садовников. – Москва ; Вологда : Инфра-Инженерия, 2022. – 392 с. : ил., табл. ISBN 978-5-9729-1006-9 Рассмотрен полный каскад разработки моделей искусственного интеллекта. Проанализирована область Data Science, из которой выделены все необходимые для прикладной сферы алгоритмы машинного обучения, расположенные по уровню возрастания сложности работы с ними. Для студентов, изучающих информационные технологии. Может быть полезно как начинающим программистам, так и специалистам высокого уровня. УДК 004.89 ББК 32.813 ISBN 978-5-9729-1006-9 © Протодьяконов А. В., Пылов П. А., Садовников В. Е., 2022 Издательство «Инфра-Инженерия», 2022 Оформление. Издательство «Инфра-Инженерия», 2022 2
ǼDZǹǮǰǹdzǻǶdz ǽȞȓȒȖȟșȜȐȖȓ .............................................................................................................................. 7 ȅȎȟȠȪǽȞȜȤȓȟȟȚȎȦȖțțȜȑȜȜȏȡȥȓțȖȭ ......................................................................... 8 Задачи машинного обучения ...................................................................................................... 8 Модель и процесс машинного обучения ................................................................................. 10 Понятие ETL .............................................................................................................................. 12 Понятие EDA ............................................................................................................................. 13 Подготовка данных ................................................................................................................... 15 Разбиение выборки .................................................................................................................... 18 Оптимизация гиперпараметров ............................................................................................... 21 Недообучение и переобучение ................................................................................................. 23 Смещение, разброс и ошибка данных ..................................................................................... 27 Использование HDF .................................................................................................................. 30 ȅȎȟȠȪǺȓȠȞȖȘȖȖȚȜȒȓșȖȜȏȧȖȓ ................................................................................. 33 Метод максимального правдоподобия .................................................................................... 33 Метод наименьших квадратов ................................................................................................. 36 Аппроксимация пропусков в данных ...................................................................................... 38 Среднеквадратичная ошибка ................................................................................................... 40 Метрики и расстояния .............................................................................................................. 42 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ-2 ................................................................................. 45 Процесс ETL .............................................................................................................................. 45 Интерполяция и экстраполяция ............................................................................................... 50 Оценка модели ........................................................................................................................... 52 Линейная регрессия .................................................................................................................. 55 Оптимизация потребления памяти .......................................................................................... 57 EDA и исследование зависимостей в данных ........................................................................ 61 Заполнение пропусков в данных ............................................................................................. 69 ȅȎȟȠȪǺȜȒȓșȖșȖțȓȗțȜȗȞȓȑȞȓȟȟȖȖ .......................................................................... 73 Линейная регрессия и L1BL2-регуляризация ......................................................................... 73 Изотоническая регрессия.......................................................................................................... 76 BIC и AIC ................................................................................................................................... 78 Полиномиальная регрессия ...................................................................................................... 79 Линеаризация регрессии ........................................................................................................... 81 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ..................................................................................... 84 Обогащение данных .................................................................................................................. 84 Иерархия моделей ..................................................................................................................... 94 Оптимизация регрессии .......................................................................................................... 101 Экспорт и импорт данных ...................................................................................................... 105 Ансамбль регрессионных моделей ........................................................................................ 114 Расчет результатов .................................................................................................................. 120 3
ȅȎȟȠȪǺȜȒȓșȖȘșȎȟȟȖȢȖȘȎȤȖȖȖȓȮȚȓȠȞȖȘȖ ..................................................... 132 Точность и полнота ................................................................................................................. 132 F-мера ....................................................................................................................................... 134 ROC AUC и Gini ...................................................................................................................... 136 Оценка Каппа Коэна ............................................................................................................... 139 Взвешенная квадратичная оценка Каппа Коэна ................................................................... 140 Логистическая функция потерь ............................................................................................. 142 Метод ближайших соседей .................................................................................................... 144 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 147 Страховой скоринг .................................................................................................................. 147 F1 и Каппа оценки классификации ........................................................................................ 155 Метод ближайших соседей .................................................................................................... 161 Наивный Байес в задаче классификации скоринга и оптимизации потребления памяти ................................................................................................................ 165 Логистическая регрессия ........................................................................................................ 170 Иерархия логистической ргерессии ...................................................................................... 174 Метод опорных векторов (Support-Vector Machine) ............................................................ 179 ȅȎȟȠȪǮțȟȎȚȏșȓȐȩȓȚȜȒȓșȖ ...................................................................................... 183 Ансамблевые модели .............................................................................................................. 183 Бутсрэп ..................................................................................................................................... 185 Бэггинг ...................................................................................................................................... 186 Случайный лес ......................................................................................................................... 188 Out-of-Bag ................................................................................................................................ 190 Сверхслучайные деревья ........................................................................................................ 192 Адаптивный бустинг ............................................................................................................... 194 LogitBoost, BrownBoost и L2Boost ......................................................................................... 197 Градиентный спуск ................................................................................................................. 200 Градиентный бустинг и XGBoost .......................................................................................... 203 Стохастический градиентный бустинг .................................................................................. 205 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 208 Решающие деревья .................................................................................................................. 208 Случайный лес ......................................................................................................................... 212 Бустинг с XGBoost .................................................................................................................. 216 ȅȎȟȠȪǽȞȜȒȐȖțȡȠȩȓȎțȟȎȚȏșȖ ................................................................................... 220 LightGBM ................................................................................................................................. 220 CatBoost .................................................................................................................................... 222 Ансамбль стекинга .................................................................................................................. 224 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 228 LightGBM ................................................................................................................................. 228 CatBoost .................................................................................................................................... 232 Ансамбль классификации ....................................................................................................... 238 Расчет результатов .................................................................................................................. 243 4
ȅȎȟȠȪǶȟȘȡȟȟȠȐȓțțȩȓțȓȗȞȜțțȩȓȟȓȠȖ ................................................................. 247 Искусственные нейронные сети ............................................................................................ 247 Слои в нейросетях ................................................................................................................... 250 Нейрон смещения .................................................................................................................... 251 Функции активации................................................................................................................. 253 Обратное распространение ошибки ...................................................................................... 256 Многослойный перцептрон .................................................................................................... 258 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 261 Задача предсказания формы облаков .................................................................................... 261 Предобработка изображений ................................................................................................. 266 Опорные векторы и коэффициент сходства ......................................................................... 270 Двухслойный перцептрон ...................................................................................................... 273 ȅȎȟȠȪǼȏȡȥȓțȖȓțȓȗȞȜȟȓȠȖ ........................................................................................ 278 Эпохи, пакеты, итерации ........................................................................................................ 278 Оптимизация нейронной сети по Нестерову ........................................................................ 279 Адаптивная оптимизация нейронной сети ........................................................................... 281 RMSprop, Adadelta, Adam ....................................................................................................... 282 Оптимизация нейронных сетей .............................................................................................. 283 Пакетная нормализация .......................................................................................................... 285 Регуляризация обучения нейронных сетей ........................................................................... 287 Методы инициализации весов в нейронных сетях .............................................................. 288 Дополнение данных ................................................................................................................ 290 Свертка и подвыборка ............................................................................................................ 292 Сверточные нейронные сети .................................................................................................. 294 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 296 Свертка и предвыборка ........................................................................................................... 296 Активация и оптимизаторы .................................................................................................... 300 Нормализация и переобучение .............................................................................................. 305 Дополнение изображений ....................................................................................................... 310 ȅȎȟȠȪǮȞȣȖȠȓȘȠȡȞȩȟȐȓȞȠȜȥțȩȣțȓȗȞȜȟȓȠȓȗ ..................................................... 315 LeNet ......................................................................................................................................... 315 AlexNet ..................................................................................................................................... 317 VGG .......................................................................................................................................... 320 GoogLeNet ................................................................................................................................ 323 Inception .................................................................................................................................... 325 ResNet ....................................................................................................................................... 329 ResNetXt ................................................................................................................................... 331 SE-ResNet ................................................................................................................................. 333 EfficientNet ............................................................................................................................... 334 DenseNet ................................................................................................................................... 336 MobileNet .................................................................................................................................. 338 ȅȎȟȠȪȝȞȎȘȠȖȥȓȟȘȖȣțȎȐȩȘȜȐȘ ................................................................................... 341 LeNet и AlexNet ....................................................................................................................... 341 VGG16 и VGG19 ..................................................................................................................... 345 5
GoogLeNet и Inception-BN ...................................................................................................... 349 Inception V3 и V4 ..................................................................................................................... 361 ResNet ....................................................................................................................................... 365 Архитектура нейросети .......................................................................................................... 369 MobileNet для различных предметных областей ................................................................. 375 ǯȖȏșȖȜȑȞȎȢȖȥȓȟȘȖȗȟȝȖȟȜȘ ........................................................................................... 380 ǽȞȖșȜȔȓțȖȓ Варианты заданий для самостоятельной реализации алгоритмов машинного обучения ................................................................................................................. 384 ǽȞȖșȜȔȓțȖȓ Варианты заданий для исследовательских работ в области машинного обучения ................................................................................................................. 387 ǽȞȖșȜȔȓțȖȓ Варианты заданий, включающие в себя самостоятельный этап Data Mining, для построения End-To-End решений в области машинного обучения ......... 388 6
ǽǾdzDzǶǿǹǼǰǶdz Данное учебное пособие предполагает обучение студентов технических специальностей (и является профильным для студентов информационных технологий) навыкам и методикам работы с сложными моделями машинного и глубокого обучения. Отличительной чертой пособия от других схожих курсов обучения искусственному интеллекту (онлайн площадки, интернет-курсы) является плавность возрастания сложности и целостность логики повествования. Сложность входного порога к изучению алгоритмов и моделей машинного / глубокого обучения является минимальной из всех возможных, то есть даже неподготовленный студент может начать обучению по настоящему учебному пособию и плавно упрочнять свои навыки до уровня Junior Data Scientists. Состав и последовательность вариантов работ в учебном пособии организованы по логическому возрастанию уровня сложности. Таким образом, предложенные задания могут быть освоены студентами не только в рамках курса дисциплины, но и, по своему интересу, студенты могут самостоятельно повышать свои навыки и умения на более сложных заданиях, не затрачивая дополнительное время на поиск заданий и наборов данных в сети Интернет. Полное освоение работ по данному учебному пособию (при условии самостоятельного выполнения практических работ) гарантирует появление у студента навыков и умений hard skills, необходимых и достаточных для трудоустройства в компании по специальности Junior Data Scientists / Data Analyst1. 1 Согласно реальным данным анкет одного из крупнейших в РФ поисковых сервисов работы (https://spb.hh.ru/vacancies/data-analyst и https://spb.hh.ru/search/vacancy"clusters=true area=2 oredB clusters=true enableBsnippets=true salary= text=datascientists) по состоянию на конец ноября – начало декабря 2021 года. 7
ȅȎȟȠȪ ǽǾǼȄdzǿǿ ǺǮȆǶǻǻǼDZǼǼǯȁȅdzǻǶȍ ǵǮDzǮȅǶǺǮȆǶǻǻǼDZǼǼǯȁȅdzǻǶȍ Начинать знакомство с машинным обучением логично с обзора тех задач (классификации задач), которые относятся к машинному обучению. Данным задачам и методам их решения будут посвящены следующие разделы учебного пособия. Классификаций задач в машинном обучении очень много (некоторые идут от способа решения, другие от метода решения), в нашем случае примем за основу самую общую и наиболее простую классификацию, выделяющую три основных группы в задачах машинного обучения: 1. Обучение с учителем. 2. Обучение без учителя. 3. Обучение с подкреплением. Начнем с первой группы задач. Такая концепция подразумевает под собой тот факт, что у нас есть на входе некоторые данные, для которых известен ответ (задача очень похожа на арифметическую / геометрическую прогрессию, когда нужно угадать следующее/предыдущее число в ряду чисел). При этому у нас есть некоторые новые данные, для которых требуется найти правильное значение (наиболее правильное), так как машинное обучение предполагает возможность, при котором может не быть однозначно правильного ответа на поставленный вопрос. То есть существует некоторый набор ответов, каждый из которых по-своему близок к правильному, но, скорее всего, правильным не является (всегда существует определенная статистическая ошибка). Обучение с учителем – наиболее простой класс задач в машинном обучении, так как предполагает, что у нас уже есть собранные данные, на эти данные есть правильный ответы и по аналогичным данным нам нужно предсказать ответ, который будет похож на правильный и максимально близок к правильному (во всяком случае мы сможем оценить, насколько предсказываемый 8
ответ близок к правильному). В обучении с учителем выделяют две основные задачи: x задача регрессии; x задача классификации. По сути, они достаточно похожи друг на друга, только в задачи регрессии мы предсказываем числовое значение, а в задачи классификации ответ представлен в виде ранга или категории (по факту – нечисловое значение). Задачи решаются одними и теми же алгоритмами, но принято их разделять и говорить, что если предсказывается числовое значение – то это точно задача регрессии (у неё свой набор методов – линейная регрессия, нелинейная регрессия), в то время как предсказание рангов и классов относится к задаче классификации (у неё существует другой набор алгоритмов – метод ближайших соседей, множественная классификация). Обучение без учителя – вторая группа задач – говорит, что у нас нет правильного ответа. Существуют данные, но ответа на них нет. Соответственно возникает ряд задач в связи с тем, что у нас нет ответа на данные. Первая подзадача – задача кластеризации. В ней по определённым параметрам (например, количество кластеров) необходимо предсказать каким образом данные распределены между собой. Это позволяет разнести данные по кластерам, основываясь на среднем удалении от центра кластера, на количестве кластеров и других признаков, тем самым решив задачу кластеризации таким образом. Кроме того, группа задач обучения без учителя включает в себя методы понижения размерности, когда существует огромное количество признаков и нам требуется уменьшить их до нескольких, чтобы потом применить задачу кластеризации или задачу обучения с учителем (чтобы на разных параметрах определить какие параметры важны и, снизив размерность, решить задачу обучения с учителем. При большой размерности решить задачу с учителем не представляется возможным без серьезного аппаратного обеспечения). Также к классу задач обучения без учителя относится класс задач по выявлении аномалий. Они похожи на кластеризацию, где есть все данные и дополнительно могут быть ещё какие-то. Обращаем особое внимание на то, что 9
«каких-то дополнительных данных» может и не быть, то есть мы можем не знать какая конкретно будет аномалия, однако мы можем предположить, что некоторые зависимости в данных уже являются аномалиями. Например, задача Фродо относится к классу задач обучения без учителя, так как в ней нужно предсказать пытается ли кто-то обмануть систему или нет. Из практики можно привести пример автоматического распознавания Ddos-атаки, когда алгоритм сам определяет, что такого количества посетителей не должно быть и, скорее всего прирост запросов на сайт – действие злоумышленников. Третий тип задач машинного обучения – это обучение с подкреплением. Оно похоже на обучение, но это его единственное сходство с двумя другими категориями, потому что обучение с подкреплением предполагает, что у нас нет данных как таковых, но у нас есть среда, которая генерирует поток сигналов. На основании данных сигналов система должна принимать решения самостоятельно. Разумеется, задачу третьего типа можно свести к одной из двух типов задач машинного обучения, однако важное отличие третьего типа от двух остальных состоит в том, что существует положительная обратная связь от среды. Обучение предполагает, что у нас будет ответ, насколько мы правильно или неправильно решили поставленную от среды задачу (правильно повернули на автомобиле или нет). Подкрепление есть как система обратной связи – положительной или отрицательной; в любом случае у нас должен существовать новый ассортимент методов и алгоритмов для решения узконаправленной задачи. ǺǼDzdzǹȊǶǽǾǼȄdzǿǿǺǮȆǶǻǻǼDZǼǼǯȁȅdzǻǶȍ Модель машинного обучения – это некоторая функция или алгоритм (порядок действий), который по набору входных параметров (десятки, сотни, тысячи значений) выдает какой-то ответ или оценку ситуации (какое-то число; действия, которые необходимо предпринять; категорию; набор ответов). Функция ставит в соответствие некоторый образец данных некоторому решению (решение может быть достаточно произвольным: число, действие, категория, отсутствие действия). Этому результату модель может обучаться (может не обучаться, а просто выдавать его). Чтобы получить эту главную функцию необходимо выполнить определенный, достаточно трудоёмкий процесс. 10