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

Машинное обучение с использованием библиотеки Н2О

Покупка
Артикул: 712484.01.99
Доступ онлайн
799 ₽
В корзину
Н20 - простая в использовании и открытая библиотека, которая поддерживает большое количество операционных систем и языков программирования, а также масштабируется для обработки больших данных. Эта книга научит вас использовать алгоритмы машинного обучения, реализованные в Н20, с упором на наиболее важные для продуктивной работы аспекты. Рассмотрены глубокое обучение, случайный лес, обучение на неразмеченных данных и ансамбли моделей. В российское издание добавлены дополнительно два приложения, описывающих новейшие модули Н20 - Deep Water и Stacked Ensemble. Их также можно найти в репозитории https://github.com/statist-bhfz/h2o_book_translate. Издание предназначено для специалистов по анализу данных, желающих изучить и применять на практике относительно новый, но многообещающий инструмент-библиотеку Н20.
Кук, Д. Машинное обучение с использованием библиотеки Н20 / Д. Кук ; пер. с англ. А.Б. Огурцова. - Москва : ДМК Пресс, 2018. - 250 с. - ISBN 978-5-97060-508-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1028135 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Даррен Кук

Машинное обучение  
с использованием библиотеки Н2О

Darren Cook

Practical Machine Learning 

with H2O

Powerful, Scalable Techniques for Deep Learning and AI

Beijing • Boston • Farnham • Sebastopol • Tokyo

Даррен Кук

Машинное обучение  
с использованием  
библиотеки Н2О

Мощные и масштабируемые методы для глубокого обучения и ИИ

Москва, 2018

УДК 004.85Н2О
ББК 32.813
К89

Кук Д.
К89 
Машинное обучение с использованием библиотеки Н2О / пер. с англ. 
А. Б. Огурцова. – М.: ДМК Пресс, 2018. – 250 с.: ил. 

ISBN 978-5-97060-508-0

Н2О – простая в использовании и открытая библиотека, которая поддерживает 
большое количество операционных систем и языков программирования, а также 
масштабируется для обработки больших данных. Эта книга научит вас использовать 
алгоритмы машинного обучения, реализованные в Н2О, с упором на наиболее важные 
для продуктивной работы аспекты. Рассмотрены глубокое обучение, случайный лес, 
обучение на неразмеченных данных и ансамбли моделей.
В российское издание добавлены дополнительно два приложения, описывающих 
новейшие модули Н2О – Deep Water и Stacked Ensemble. Их также можно найти в репозитории https://github.com/statist-bhfz/h2o_book_translate.
Издание предназначено для специалистов по анализу данных, желающих изучить 
и применять на практике относительно новый, но многообещающий инструмент – 
библиотеку Н2О.

УДК 004.85Н2О
ББК 32.813

Authorized Russian translation of the English edition of Practical Machine Learning with H2O, 
ISBN 9781491964606 © 2017 Darren Cook.
This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls 
all rights to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

ISBN 978-1-491-96460-6 (анг.) 
Copyright © 2017 Darren Cook
ISBN 978-5-97060-508-0 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2018

Содержание

Предисловие .............................................................................................................10

Глава 1. Установка и начало работы .......................................................................13
Подготовка к установке .............................................................................................13

Установка R ............................................................................................................13
Установка Python ...................................................................................................14
Конфиденциальность ............................................................................................14
Установка Java ........................................................................................................15

Установка H2O при помощи R (CRAN) .....................................................................15
Установка H2O при помощи Python (pip).................................................................16
Наша первая задача машинного обучения ..............................................................17

Обучение и предсказания в Python ......................................................................21
Обучение и предсказания в R ...............................................................................23
Производительность и предсказания ..................................................................25
Если вам не повезло ..............................................................................................26

Веб-интерфейс Flow ..................................................................................................27

Данные ...................................................................................................................28
Модели ....................................................................................................................29
Предсказания .........................................................................................................31
Дополнительные сведения об интерфейсе Flow .................................................32

Резюме ........................................................................................................................32

Глава 2. Импортирование и экспортирование данных ........................................33
Требования к памяти ................................................................................................33
Подготовка данных ....................................................................................................34
Загрузка данных в H2O ..............................................................................................35

Загрузка файлов в формате CSV ...........................................................................35
Загрузка файлов в других форматах ....................................................................37
Загрузка данных из R ............................................................................................38
Загрузка данных из Python ...................................................................................39

Операции с данными ................................................................................................40

«Ленивость»,  присвоение имен и удаление ........................................................40
Итоговые статистики ............................................................................................42
Операции со столбцами ........................................................................................42
Агрегирование строк .............................................................................................43
Индексация ............................................................................................................44
Разделение данных в кластере H2O .....................................................................46
Строки и столбцы ..................................................................................................49

Выгрузка данных из H2O ..........................................................................................52

Экспорт таблиц ......................................................................................................52
Формат POJO ..........................................................................................................53
Файлы моделей ......................................................................................................54
Сохранение всех моделей .....................................................................................54

Резюме ........................................................................................................................55

 Содержание

Глава 3. Наборы данных ..........................................................................................56
Набор данных об энергетической эффективности .................................................56

Настройка и загрузка ............................................................................................57
Переменные ...........................................................................................................58
Разделение данных................................................................................................59
Изучение данных ...................................................................................................60
О наборе данных ....................................................................................................64

Набор данных: рукописные цифры ..........................................................................64

Настройка и загрузка ............................................................................................65
Изучение данных ...................................................................................................66
Как можно «помочь» модели ................................................................................68
О наборе данных ....................................................................................................70

Набор данных: результаты футбольных матчей .....................................................70

Корреляции ............................................................................................................73
Пропущенные данные ...........................................................................................76
Как обучать и тестировать? ..................................................................................77
Настройка и загрузка ............................................................................................77
Третий источник данных ......................................................................................78
Снова про пропущенные данные .........................................................................80
Настройка и загрузка (снова) ................................................................................80
О наборе данных ....................................................................................................83

Резюме ........................................................................................................................83

Глава 4. Общие параметры моделей ......................................................................84
Поддерживаемые метрики .......................................................................................84

Метрики для регрессии .........................................................................................85
Метрики для классификации ................................................................................85
Бинарная классификация .....................................................................................86

Основы .......................................................................................................................88
Объем выполняемой работы ....................................................................................89
Оценка и проверка ....................................................................................................90
Ранняя остановка.......................................................................................................90
Контрольные точки ...................................................................................................92
Перекрестная проверка .............................................................................................94
Взвешивание наблюдений ........................................................................................95
Выборки и обобщающая способность ......................................................................98
Регрессия ....................................................................................................................99
Контроль вывода результатов .................................................................................100
Резюме ......................................................................................................................100

Глава 5. Случайный лес ...........................................................................................101
Решающие деревья ..................................................................................................101
Случайный лес .........................................................................................................103
Параметры ...............................................................................................................103
Энергоэффективность зданий: случайный лес с настройками  
по умолчанию ..........................................................................................................105

Содержание  7

Поиск по сетке .........................................................................................................107

Полный перебор ..................................................................................................108
Случайный поиск .................................................................................................110
Общая стратегия ..................................................................................................112

Энергоэффективность зданий: настроенный случайный лес ..............................113
MNIST: случайный лес с настройками по умолчанию ..........................................114
MNIST: настроенный случайный лес .....................................................................116

Дополненные данные ..........................................................................................119

Футбол: случайный лес с настройками по умолчанию .........................................120
Футбол: настроенный случайный лес ....................................................................122
Резюме ......................................................................................................................124

Глава 6. Градиентный бустинг ................................................................................125
Бустинг .....................................................................................................................125
Хорошее, плохое… и непонятное ...........................................................................126
Параметры ...............................................................................................................127
Энергоэффективность зданий: градиентный бустинг с настройками  
по умолчанию ..........................................................................................................128
Энергоэффективность зданий: настроенный градиентный бустинг ..................130
MNIST: градиентный бустинг с настройками по умолчанию ..............................133
MNIST: настроенный градиентный бустинг  .........................................................134
Футбол: градиентный бустинг с настройками по умолчанию .............................137
Футбол: настроенный градиентный бустинг .........................................................138
Резюме ......................................................................................................................140

Глава 7. Линейные модели .....................................................................................141
Параметры GLM .......................................................................................................141
Данные об энергоэффективности: GLM с настройками по умолчанию ..............145
Данные об энергоэффективности: настроенная GLM ..........................................147
MNIST: GLM с настройками по умолчанию ...........................................................151
MNIST: настроенная GLM ........................................................................................153
Футбол: GLM с настройками по умолчанию ..........................................................155
Футбол: настроенная GLM  ......................................................................................156
Резюме ......................................................................................................................157

Глава 8. Глубокое обучение (нейронные сети) ....................................................158
Что такое нейронные сети? .....................................................................................159

Количественные и категориальные переменные .............................................160
Слои нейронной сети ..........................................................................................161
Функции активации ............................................................................................163

Параметры ...............................................................................................................164

Регуляризация  .....................................................................................................164
Оценка качества ..................................................................................................165

Энергоэффективность зданий: модель глубокого обучения с настройками  
по умолчанию ..........................................................................................................168
Энергоэффективность зданий: настроенная модель глубокого обучения ..........168

 Содержание

MNIST: модель глубокого обучения с настройками по умолчанию.....................174
MNIST: настроенная модель глубокого обучения .................................................175
Футбол: модель глубокого обучения с настройками по умолчанию ...................179
Футбол: настроенная модель глубокого обучения ................................................180
Резюме ......................................................................................................................185
Приложение: дополнительные параметры ...........................................................185

Глава 9. Обучение на неразмеченных данных ....................................................187
Кластеризация методом k-средних ........................................................................188
Автокодировщики ...................................................................................................191

Вложенные автокодировщики ............................................................................193

Метод главных компонент ......................................................................................194
GLRM .........................................................................................................................196
Пропущенные данные .............................................................................................196

GLRM .....................................................................................................................200
Избавляемся от R .................................................................................................200

Резюме ......................................................................................................................203

Глава 10. Все остальное..........................................................................................204
Документация ..........................................................................................................204
Установка актуальной версии .................................................................................204

Сборка из исходных кодов ..................................................................................204

Запуск из командной строки ..................................................................................205
Кластеры ...................................................................................................................205

EC2 ........................................................................................................................206
Другие облачные провайдеры ............................................................................206
Hadoop ..................................................................................................................207

Spark / Sparkling Water .............................................................................................207
Наивный байесовский классификатор...................................................................207
Ансамбли ..................................................................................................................208

Стекинг: h2o.ensemble .........................................................................................208
Ансамбли для классификации ............................................................................210

Резюме ......................................................................................................................210

Глава 11. Эпилог ......................................................................................................211
Результаты для данных об энергоэффективности ................................................211
Результаты для набора данных MNIST ...................................................................213
Результаты для данных о футбольных матчах ......................................................214
Как далеко вы готовы зайти ....................................................................................216

Чем больше, тем лучше .......................................................................................217
Еще больше данных .............................................................................................218
Отбор сложных примеров ...................................................................................219
Автокодировщик .................................................................................................219
Сверточные сети ..................................................................................................220
Ансамбли ..............................................................................................................221
Результаты............................................................................................................222

Резюме ......................................................................................................................223

Содержание  9

Приложение 1. Deep Water ....................................................................................224
Установка ..................................................................................................................224

Сборка из исходных кодов ..................................................................................224
Amazon Machine Image ........................................................................................224
Образ Docker ........................................................................................................224
Примеры данных .................................................................................................224

Обзор библиотеки Deep Water ................................................................................224

Глубокое обучение в библиотеке H2O ................................................................225
Современные тенденции в глубоком обучении ................................................225
Почему нужно использовать Deep Water ...........................................................225

Начало работы: набор данных MNIST ....................................................................226

Бекенды ................................................................................................................227
CPU и GPU .............................................................................................................227

Классификация изображений .................................................................................229

Данные .................................................................................................................229
Параметры изображений ....................................................................................229
Предварительно созданные архитектуры .........................................................229
Архитектуры, создаваемые  пользователем ......................................................230
Предварительно обученные нейросети .............................................................230

Веб-интерфейс Flow ................................................................................................230
Поиск по сетке .........................................................................................................233

Полный перебор ..................................................................................................233
Случайный поиск .................................................................................................234

Контрольные точки .................................................................................................235
Ансамбли ..................................................................................................................237
Признаки скрытых слоев и меры сходства ............................................................238
Поддержка нескольких GPU ....................................................................................239
Развертывание моделей ..........................................................................................240

MOJO .....................................................................................................................240
Prediction Service Builder .....................................................................................240

Приложение 2. Ансамбли (стекинг моделей) ........................................................241
Вступление ...............................................................................................................241
Стекинг / Super Learner ...........................................................................................241

Алгоритм ..............................................................................................................242

Вложенные ансамбли в библиотеке H2O ...............................................................242
Пример .....................................................................................................................243

На языке R ............................................................................................................243
На языке Python ...................................................................................................245

Вопросы и ответы ....................................................................................................247
Дополнительная информация ................................................................................248
Список литературы ..................................................................................................248

Краткий предметный указатель............................................................................249

Предисловие

Похоже, что машинное обучение наконец-то достигло стадии зрелости. У него 
было длинное детство, охватывающее период с 1950-х гг., когда были созданы 
первые программы (для игры в шашки), обучающиеся на основе опыта, а также 
первые нейронные сети. Исследователи в области искусственного интеллекта так 
часто обещали скорый прорыв в этой сфере, что мы давно перестали их слушать. 
Но, возможно, они были на верном пути все это время, и нужно было лишь увеличить вычислительные мощности еще на порядок, или же немного доработать 
алгоритмы, чтобы перейти к их полезному и продуктивному использованию.
В начале 90-х нейронные сети называли новым прорывом в области искусственного интеллекта. Я пытался применить их для игры в го, но они работали 
очень плохо даже по сравнению с результатами (также весьма посредственными), 
которые были получены инженерными методами на основе знания предметной 
области с использованием усеченных деревьев поиска. Также они плохо масштабировались. И когда 20 лет спустя я услышал о потрясающих успехах глубокого 
обучения в этой игре, я был смущен отличиями от нейросетей, от использования которых я тогда отказался. «Недостаточно много» – вот ответ; иногда нужно 
предоставить алгоритму больше вычислительных ресурсов (в данном случае на 
5–6 порядков больше), чтобы он раскрыл свой потенциал.
H2O – это программное обеспечение для машинного обучения и анализа данных. Я начал использовать данную библиотеку из-за интереса к возможностям 
глубокого обучения (хотя в ней реализованы и другие алгоритмы) и сразу же был 
впечатлен. Ее особенности:
 
 является открытым (open source) продуктом, распространяется на условиях 
лицензии Apache;
 
 проста в использовании;
 
 масштабируется для работы с большими данными;
 
 хорошо документирована и имеет коммерческую поддержку;
 
 актуальной является уже третья версия, что говорит о зрелой архитектуре;
 
 поддержка различных операционных систем и языков программирования.
При разработке H2O целью было обеспечение эффективной работы при масштабировании на больших объемах данных. 
В этой книге рассматривается практический аспект использования библиотеки 
H2O с минимумом математики и теоретических основ применяемых методов.
Разумеется, библиотека H2O не лишена недостатков, и вот некоторые из них. 
В ней нет поддержки вычислений на GPU, что, в частности, могло бы повысить 
эффективность работы алгоритмов глубокого обучения1. Кластеры предназначены для работы с большими объемами данных, но для обработки относительно 
небольших выборок со сложной структурой вам может понадобиться один многоядерный сервер. Для кластеров не реализована поддержка высокой доступности. 
Библиотека H2O написана на языке Java и хорошо оптимизирована, но теоретически реализации на C++ могут работать быстрее. Не реализован алгоритм SVM (ма
1 В разработке находится проект DeepWater, который добавляет поддержку других библиотек для глубокого обучения, использующих GPU.

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