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

Алгоритмы Data Science и их практическая реализация на Python

Покупка
Основная коллекция
Артикул: 791490.01.99
Рассмотрен полный каскад разработки моделей искусственного интеллекта. Проанализирована область Data Science, из которой выделены все необходимые для прикладной сферы алгоритмы машинного обучения, расположенные по уровню возрастания сложности работы с ними. Для студентов, изучающих информационные технологии. Может быть полезно как начинающим программистам, так и специалистам высокого уровня.
Протодьяконов, А. В. Алгоритмы Data Science и их практическая реализация на Python : учебное пособие / А. В. Протодьяконов, П. А. Пылов, В. Е. Садовников. - Москва ; Вологда : Инфра-Инженерия, 2022. - 392 с. - ISBN 978-5-9729-1006-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1902689 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
 
ǮǰǽȞȜȠȜȒȪȭȘȜțȜȐ
ǽǮǽȩșȜȐ
ǰ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