Предисловие....11
Вступление....13
Благодарности....15
О книге....17
Как организована книга: дорожная карта....17
О коде....19
От издательства....20
Об авторе....21
1. Что такое машинное обучение? Это здравый смысл, проявляемый компьютером....22
Я с радостью присоединяюсь к вам на пути к знаниям!....23
Машинное обучение повсюду....23
Нужен ли большой опыт в математике и программировании, чтобы понять машинное обучение?....24
Так что же такое машинное обучение?....25
Как заставить машины принимать решения с помощью данных? Концепция вспоминания — формулирования — прогнозирования....28
Резюме....37
2. Типы машинного обучения....38
В чем разница между размеченными и неразмеченными данными....40
Контролируемое обучение — раздел машинного обучения, который работает с размеченными данными....42
Неконтролируемое обучение: раздел машинного обучения, который работает с неразмеченными данными....46
Что такое обучение с подкреплением....56
Резюме....58
Упражнения....58
3. Прямая вплотную к точкам. Линейная регрессия....60
Задача: спрогнозировать цену дома....62
Решение: построить регрессионную модель цен на жилье....63
Как заставить компьютер провести прямую. Алгоритм линейной регрессии....70
Как мы измеряем результаты? Функция ошибок....86
Реальное применение. Использование Turi Create для прогнозирования цен на жилье в Индии....94
Что делать, если данные не расположены на прямой? Полиномиальная регрессия....96
Параметры и гиперпараметры....98
Применение регрессии....99
Резюме....100
Упражнения....101
4. Оптимизация процесса обучения. Недообучение, переобучение, тестирование и регуляризация....103
Пример недообучения и переобучения с использованием полиномиальной регрессии....106
Как заставить компьютер выбрать правильную модель? Тестированием!....108
Где нарушено золотое правило и как это исправить? Контрольный набор....111
Численный способ определить нужную сложность модели. График сложности модели....112
Еще один способ избежать переобучения — регуляризация....114
Полиномиальная регрессия, тестирование и регуляризация с помощью Turi Create....124
Резюме....128
Упражнения....129
5. Использование прямых для разделения точек. Алгоритм персептрона....131
Проблема: мы на чужой планете и не знаем местного языка!....134
Как определить, хорошо ли работает классификатор? Функция ошибки....149
Как найти хороший классификатор? Алгоритм персептрона....157
Кодирование алгоритма персептрона....166
Применение алгоритма персептрона....171
Резюме....173
Упражнения....174
6. Непрерывный подход к разделению точек. Логистические классификаторы....176
Логистические классификаторы — непрерывная версия персептронных классификаторов....178
Как найти хороший логистический классификатор? Алгоритм логистической регрессии....190
Кодирование алгоритма логистической регрессии....197
Реальное применение. Классификация обзоров IMDB с помощью Turi Create....201
Классификация по нескольким классам. Логистическая функция со многими переменными....204
Резюме....206
Упражнения....206
7. Как оценивать классификационные модели? Достоверность и ее друзья....208
Достоверность. Как часто модель оказывается права?....210
Как устранить проблему с достоверностью? Определение различных типов ошибок и способы их измерения....211
Полезный инструмент для оценки модели — кривая рабочих характеристик приемника....223
Резюме....235
Упражнения....237
8. Как использовать вероятность по максимуму. Наивная байесовская модель....239
Болен или здоров? История с теоремой Байеса в качестве героя....241
Пример использования — модель спам-фильтра....246
Построение модели спам-фильтра на основе реальных данных....260
Резюме....264
Упражнения....264
9. Разбиение данных согласно ответам на вопросы. Деревья решений....267
Задача: необходимо рекомендовать пользователям приложения, которые они, скорее всего, скачают....274
Решение: создание системы рекомендации приложений....276
Помимо вопросов типа «да/нет»....292
Графическая граница деревьев решений....296
Реальное применение. Моделирование приема студентов с помощью Scikit-Learn....300
Деревья решений для регрессии....304
Сфера применения....308
Резюме....309
Упражнения....310
10. Комбинирование ради усиления. Нейронные сети....312
Нейронные сети на примере. Более сложная чужая планета....314
Обучение нейронных сетей....328
Кодирование нейронных сетей в Keras....336
Нейронные сети для регрессии....344
Другие архитектуры для более сложных наборов данных....346
Резюме....349
Упражнения....350
11. Нахождение границ со стилем. Машины опорных векторов и метод ядра....352
Использование новой функции ошибок для создания более совершенных классификаторов....355
Кодирование машин с опорными векторами в Scikit-Learn....362
Обучение SVM с нелинейными границами. Метод ядра....364
Резюме....387
Упражнения....388
12. Комбинирование моделей для достижения максимальных результатов. Ансамблевое обучение....390
С небольшой помощью наших друзей....392
Бэггинг. Случайное объединение нескольких слабых моделей для создания сильной....394
AdaBoost. Разумное объединение слабых алгоритмов для формирования сильного....399
Градиентный бустинг. Использование деревьев решений для формирования сильных обучающих алгоритмов....408
XGBoost — экстремальный метод градиентного бустинга....413
Применение методов ансамбля....423
Резюме....423
Упражнения....424
13. Применение изученного на практике. Реальный пример разработки данных и машинного обучения....425
Набор данных «Титаник»....427
Очистка набора данных. Отсутствующие значения и как с ними бороться....431
Конструирование признаков. Преобразование признаков в наборе данных перед обучением моделей....433
Обучение моделей....439
Настройка гиперпараметров для поиска наилучшей модели. Поиск по сетке....444
Применение k-кратной перекрестной проверки для повторного использования данных в качестве обучающих и проверочных....447
Резюме....448
Упражнения....449
Приложение А. Решения к упражнениям....450
Глава 2. Типы машинного обучения....450
Глава 3. Прямая вплотную к точкам. Линейная регрессия....453
Глава 4. Оптимизация процесса обучения. Недообучение, переобучение, тестирование и регуляризация....456
Глава 5. Использование прямых для разделения точек. Алгоритм персептрона....458
Глава 6. Непрерывный подход к разделению точек. Логистические классификаторы....461
Глава 7. Как оценивать классификационные модели? Достоверность и ее друзья....463
Глава 8. Как использовать вероятность по максимуму. Наивная байесовская модель....468
Глава 9. Разбиение данных согласно ответам на вопросы. Деревья решений....473
Глава 10. Комбинирование ради усиления. Нейронные сети....478
Глава 11. Нахождение границ со стилем. Машины опорных векторов и метод ядра....481
Глава 12. Комбинирование моделей для достижения максимальных результатов. Ансамблевое обучение....484
Глава 13. Применение изученного на практике. Реальный пример разработки данных и машинного обучения....485
Приложение Б. Математика, лежащая в основе градиентного спуска. Спуск с горы с использованием....486
Использование градиентного спуска для уменьшения функций....487
Использование градиентного спуска для обучения моделей....489
Использование градиентного спуска для регуляризации....502
Застревание на локальных минимумах: как оно происходит и как его обойти....503
Приложение В. Ссылки....505
Машинное обучение — это набор методов анализа данных, основанных на алгоритмах, которые дают все более точные результаты по мере поступления новых данных. Машинное обучение лежит в основе систем рекомендаций, программ распознавания лиц, «умных» колонок и даже беспилотных автомобилей. Эта уникальная книга объясняет основные понятия машинного обучения на простых и доступных примерах, увлекательных упражнениях и запоминающихся иллюстрациях.Здесь нет зубодробительного академического жаргона, для понимания объяснений достаточно знаний основ алгебры. По мере чтения вы будете создавать модели для идентификации спама, и распознавания изображений и другие интересные проекты на языке Python.Откройте для себя мощные методы машинного обучения, для понимания и применения которых достаточно знаний математики на уровне средней школы!Для читателей, знающих основы языка Python. Знаний в области машинного обучения не требуется.