1. ПРЕДИСЛОВИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....11
2. ЧТО ТАКОЕ МАШИННОЕ ОБУЧЕНИЕ? . . . . . . . . . . . . . . . . . . . . . . . . . . . .....15
Тренировочные и тестовые данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....19
Анатомия машинного обучения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....19
3. КАТЕГОРИИ МАШИННОГО ОБУЧЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . .....25
Контролируемое обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....25
Неконтролируемое обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....27
Полуконтролируемое обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....31
Обучение с подкреплением . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....31
Q-обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....32
4. ИНСТРУМЕНТЫ МАШИННОГО ОБУЧЕНИЯ . . . . . . . . . . . . . . . . . . . . . .....35
Отделение 1: Данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....35
Отделение 2: Инфраструктура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....38
Отделение 3: Алгоритмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....40
Визуализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....41
Расширенный набор инструментов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....41
Отделение 1: Большие данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....42
Отделение 2: Инфраструктура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....42
Отделение 3: Продвинутые алгоритмы . . . . . . . . . . . . . . . . . . . . . . . .....44
5. ОЧИСТКА ДАННЫХ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....47
Отбор признаков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....47
Сжатие строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....50
Прямое кодирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....51
Биннинг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....54
Нормализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....54
Стандартизация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....55
Отсутствующие данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....56
7
6. РАЗБИЕНИЕ ДАННЫХ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....57
Перекрестная проверка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....59
Сколько данных мне нужно? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....61
7. ЛИНЕЙНАЯ РЕГРЕССИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....63
Наклон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....65
Формула линейной регрессии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....66
Пример расчета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....67
Множественная линейная регрессия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....69
Дискретные переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....70
Выбор переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....70
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....73
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....75
8. ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....77
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....81
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....82
9. МЕТОД KБЛИЖАЙШИХ СОСЕДЕЙ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....83
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....86
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....87
10. КЛАСТЕРИЗАЦИЯ МЕТОДОМ KСРЕДНИХ . . . . . . . . . . . . . . . . . . . . . .....89
Выбор значения k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....94
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....97
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....98
11. СМЕЩЕНИЕ И ДИСПЕРСИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....99
12. МАШИНЫ ОПОРНЫХ ВЕКТОРОВ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....105
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....110
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....111
13. ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ . . . . . . . . . . . . . . . . . . . . . . . . . .....113
Дилемма «черного ящика» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....115
Построение нейронной сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....116
Многослойные перцептроны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....121
Глубокое обучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....122
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....124
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....125
8
14. ДЕРЕВЬЯ РЕШЕНИЙ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....127
Построение дерева решений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....129
Вычисление энтропии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....132
Переобучение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....135
Бэггинг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....136
Метод случайного леса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....136
Бустинг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....138
Контрольная работа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....140
Ответы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....141
15. АНСАМБЛЕВОЕ МОДЕЛИРОВАНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....143
16. СРЕДА РАЗРАБОТКИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....147
Импорт библиотек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....149
Импорт и предварительный просмотр набора данных . . . . . . . . . . . . .....149
Поиск нужной строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....152
Вывод на экран названий столбцов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....153
17. ПОСТРОЕНИЕ МОДЕЛИ НА ЯЗЫКЕ PYTHON . . . . . . . . . . . . . . . . . . .....155
Импорт библиотек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....155
Импорт набора данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....156
Очистка набора данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....157
Процесс очистки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....157
Разбиение набора данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....161
Выбор алгоритма и настройка его гиперпараметров . . . . . . . . .....161
Оценка результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....163
18. ОПТИМИЗАЦИЯ МОДЕЛИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....167
Код оптимизированной модели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....169
Код для выполнения поиска по решетке . . . . . . . . . . . . . . . . . . . . . .....171
ДАЛЬНЕЙШИЕ ШАГИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....175
Видеоуроки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....175
Построение модели для прогнозирования
стоимости домов на Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....175
Прочие ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....176
Благодарность читателю . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....176
Программа Bug Bounty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....177
Дополнительные ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....177
| Машинное обучение | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....177
| Базовые алгоритмы | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....178
| Будущее искусственного интеллекта | . . . . . . . . . . . . . . . . . . . . . . .....178
| Программирование | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....179
| Рекомендательные системы | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....180
| Глубокое обучение | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....180
| Профессии будущего | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....181
ПРИЛОЖЕНИЕ: ВВЕДЕНИЕ В PYTHON . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....183
Комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....183
Типы данных в Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....184
Отступы и пробелы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....185
Арифметические операторы в Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....185
Объявление переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....186
Импорт библиотек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....188
Импорт набора данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....188
Вывод данных на экран . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....189
Индексирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....190
Нарезка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....191
ДРУГИЕ КНИГИ АВТОРА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....193
Курс на платформе Skillshare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....193
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....195
Практическое и подробное введение в машинное обучение.
Простые и понятные объяснения и отсутствие необходимости опыта программирования делают эту книгу прекрасной альтернативой академическому учебнику. Здесь представлены основные алгоритмы машинного обучения (ML), которые сопровождаются наглядными примерами и практическими работами. Также вы узнаете про перекрестную проверку, ансамблевое моделирование, поиск по сетке для настройки моделей, проектирование функций, горячее кодирование и многое другое.
Для разработки интеллектуальных машин в первую очередь надо понять классическую статистику, так как алгоритмы на ее основе — это сердце машинного обучения. Написание кода — еще одна неотъемлемая часть ML, которая предусматривает управление данными. Однако материал этого руководства можно освоить даже без навыков программирования.
Возможно, с чтения этой книги начнется ваш путь к получению работы в области машинного обучения, а может быть, она просто удовлетворит ваше любопытство.