Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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 (дата обращения: 18.05.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.

Для кого эта книга  11

шины опорных векторов). Наконец, необходимость обеспечивать совместимость 
с несколькими платформами замедляет разработку.

Кто и зачем использует H2O?

Многие известные компании (www.h2o.ai/customers/) используют H2O для обработки своих данных, и сейчас их количество превышает 5000. В самой компании 
H2O.ai работает свыше 80 сотрудников, большая часть – разработчики.
Эта статистика может впечатлить вашего руководителя, но не вас самих как программистов. Для разработчиков на языках R или Python, которые уже используют 
необходимые им библиотеки машинного обучения, H2O предоставляет простой 
и эффективный способ работы с объемами данных, слишком большими для обработки на одном сервере. Алгоритмы, реализованные в H2O, работают значительно 
быстрее, по сравнению со SparkML (хотя в этой библиотеке реализовано больше 
методов, чем в H2O). Кроме того, продуманный выбор значений по умолчанию 
для параметров моделей позволяет писать компактный и понятный код. Одной из 
целей этой книги было научить вас настраивать модели, но, как мы увидим, иногда 
не получается улучшить результат, который дают настройки по умолчанию.

Для Кого эта Книга

Чтобы ограничить объем книги парой сотен страниц, я позволил себе некоторые 
вольности. Подразумевается, что вы знаете R или Python. Продвинутые возможности языков не используются, поэтому знаний других языков должно хватить для 
понимания примеров, но сами примеры приводятся только на R или на Python. 
Пользователи Python выиграют от знакомства с библиотекой pandas, и не в последнюю очередь благодаря тому, что она облегчает работу с данными.
Также я предполагаю наличие у вас определенной ментальной гибкости: чтобы 
не повторять каждый пример дважды, я предположил, что пользователи R смогут 
понять примеры на Python, и наоборот. Полезно ознакомиться с презентацией: 
http://bit.ly/2gl4GRx (в том числе пользователям R).
У вас должен быть определенный опыт выполнения операций с данными, хотя 
бы при помощи электронных таблиц или SQL. Также вы должны иметь общее 
представление о машинном обучении и искусственном интеллекте, об их применении в жизни. Возможно, вы читаете данную книгу, потому что хотите участвовать в этом процессе и желаете, чтобы происходящие изменения были этичными 
и благоприятными для всех. Если это так, я приветствую такой подход.
Также я рассчитываю, что вы немного знаете статистику. Ничего страшного 
знать не потребуется – название книги содержит слово «практическое» неспроста, и изложение теоретических основ алгоритмов машинного обучения сведено 
к минимуму, достаточному для настройки моделей, но недостаточному для самостоятельной реализации алгоритмов с нуля. Используйте Википедию или поисковые системы, чтобы узнать больше. Но вы точно должны знать, чем медиана отличается от среднего и от моды, а также что такое стандартное отклонение 
и нормальное распределение.
Более того, я надеюсь, что вы понимаете: статистика может вводить в заблуждение (хорошая иллюстрация: https://xkcd.com/882/), а модели машинного обучения могут переобучаться (https://en.wikipedia.org/wiki/Overfitting). 

 Предисловие

Также нужно уточнить, что подразумевается под «моим ПК», который часто 
упоминается в контексте времени работы алгоритмов. Это ноутбук средней мощности с 8 Гб ОЗУ и 4 ядрами (8 потоков). Этого достаточно для запуска примеров 
из книги; на самом деле должно хватить и 4 Гб ОЗУ. Тем не менее иногда я «жульничал» и запускал обработку на серверах облачных провайдеров. Это сделано 
исключительно из рациональных соображений: не хотелось ждать по 24 часа до 
получения результатов, прежде чем написать о них.

принятые обозначения

В книге использованы следующие типографские обозначения:
 
 курсивом выделены имена и расширения файлов, а также параметры функций при их перечислении в списках;
 

моноширинный шрифт использован для программного кода и его элементов 
(имен переменных и функций и др.), включенных в текст.
 Предупреждения появляются в этом поле.
 
Советы появляются тут.

 Примечания появляются в этом поле.

благоДарности

Прежде всего выражаю огромную благодарность техническим рецензентам: избитая фраза о том, что эта книга стала лучше благодаря вам, является правдой. 
Другая избитая фраза – все ошибки в книге остаются на моей совести. Итак, хочу 
сказать спасибо Кэтрин Джармул (Katharine Jarmul), Юлин Джуан (Yulin Zhuang), 
Хьюго Матиен (Hugo Mathien), Эрин ЛеДелл (Erin LeDell) и Тому Кралевичу (Tom 
Kraljevic); извините, если не принял каких-то из ваших предложений. Помимо 
Эрин и Тома, множество других людей из H2O.ai помогло мне своими ответами 
на вопросы, поэтому я благодарю Арно Кандела (Arno Candel), Томаса Никодима (Tomas Nykodym), Михала Курка (Michal Kurka), Навдипа Джилл (Navdeep Gill), 
СриСатиша Амбати (SriSatish Ambati), Лорен ДиПерна (Lauren DiPerna) и всех, 
кого я забыл упомянуть (извините!).
Спасибо Николь Таше (Nicole Tache) за то, что была редактором в течение первой половины процесса создания книги, и Дабби Хардин (Debbie Hardin) за то, что 
ее заменила (Николь решила, что единственный способ покинуть проект – это 
завести ребенка). Спасибо им обеим за их спокойствие, когда я так увлекался созданием моделей, что забывал про необходимость соблюдать сроки.
Спасибо моей семье за то, что отнеслись с пониманием к тому, сколько времени 
я вложил в эту книгу.
Наконец, спасибо всем остальным: людям, которые отвечают на вопросы на 
StackOverflow, размещают сообщения в блогах и создают видеокурсы, пишут книги, пополняют Википедию. Они помогли мне заполнить пробелы в моих знаниях. Не стесняйтесь сообщать мне об ошибках, найденных в книге, и о том, как ее 
можно улучшить.

Глава 1

Установка и начало работы

Вас очень обрадует простота установки библиотеки H2O. Сначала я покажу, как ее 
установить при помощи R, используя CRAN, а затем – как это сделать при помощи 
Python, используя pip1. 
После этого мы погрузимся в наш первый проект по машинному обучению, который включает загрузку данных, создание модели и предсказаний на ее основе, 
а также оценку наших успехов. К этому моменту вы сможете похвастаться, что вы 
в некотором роде являетесь экспертом по глубокому обучению.
После обзора того, как влияние случайности может ввести нас в заблуждение, 
в этой главе более детально будет рассмотрен веб-интерфейс Flow, который поставляется вместе с H2O.

поДготовКа К установКе

В этой книге будут примеры и на языке R, и на языке Python, поэтому у вас должен 
быть установлен хотя бы один из них2. Вам также будет нужна платформа Java. 
Если есть выбор, я рекомендую всегда использовать 64-битные версии, в том числе 64-версию ОС (на странице загрузки 64-битная версия часто обозначена как 
«x64», а 32-битная – как «x86»).
Вы можете спросить, имеет ли значение выбор R или Python. Нет, и вскоре будет 
объяснено, почему. Также не существует преимуществ по производительности 
в случае использования скриптов вместо более дружественных к пользователю 
графических сред, таких как Jupiter или RStudio.

Установка R
В ОС Linux менеджер пакетов вашего дистрибутива делает установку очень простой: sudo apt-get install r-base для Debian/Ubuntu/Mint/… или sudo yum install R для 
Red-Hat/Fedora/Centos/…
Пользователи Mac должны ознакомиться с https://cran.r-project.org/bin/macosx/ 
и следовать данной инструкции.

1 В главе 10 показаны некоторые альтернативные способы установки H2O (см. «Установка 
актуальной версии»), включая сборку из исходников. Вам это может понадобиться, если 
вы столкнулись с багом, который был исправлен только в последней версии для разработчиков, или если вы хотите начать самостоятельно вносить изменения в H2O.

2 Здесь и далее под установкой языка подразумевается установка соответствующего интерпретатора. – Прим. перев.

 Установка и начало работы

При использовании ОС Windows скачайте и запустите установочный файл 
с http://cran.rstudio.com/bin/windows/, после чего следуйте инструкциям по установке. На странице Выбор компонентов (Select Components) предлагается установка 32- и 64-битных версий; я выбираю установку только 64-битной, но можно 
установить и обе.
Необязательным следующим шагом после установки R является установка 
RStudio; вы можете делать все необходимое для запуска H2O из командной строки, но RStudio значительно упрощает работу (особенно в Windows, где командная строка осталась на уровне 1995 года). Скачать и установить RStudio можно по 
адресу https://www.rstudio.com/products/rstudio/download/.

Установка Python
H2O одинаково хорошо работает и с Python 2.7, и с Python 3.5, примеры из книги 
также должны работать. Если вы используете более раннюю версию Python, возможно, потребуется выполнить ее обновление. Также будет нужен pip – менеджер пакетов для Python. Для Red-Hat/Fedora/Centos/… точный вид команды может быть различным, поэтому следуйте инструкциям по адресу https://packaging.
python.org/en/latest/install_ requirements _linux/. 
В ОС Linux нужно выполнить команду sudo apt-get install python-pip для Debian/
Ubuntu/Mint/… или sudo apt-get install python3-pip в случае использования Python3. 
Для установки на Mac следуйте руководству «Использование Python на Macintosh» (http://bit.ly/2gn4HFs).
При использовании ОС Windows следуйте аналогичному руководству «Использование Python в Windows» (http://bit.ly/1RCJ7VR). Не забудьте выбрать 64-битную 
версию (если только вы не пользуетесь до сих пор 32-битной версией Windows, 
разумеется).

 Вы также можете захотеть испытать дистрибутив Anaconda (https://www.continuum.io/
downloads), который содержит практически все пакеты, необходимые специалисту по анализу данных. Дополнительным преимуществом является возможность установки обычным 
пользователем, что будет полезным при отсутствии у вас root-привилегий. Доступны версии 
для Linux, Mac и Windows.

Конфиденциальность
H2O содержит код1 для вызова сервиса Google Analytics при каждом запуске. Происходит анонимный сбор данных, поскольку отслеживается всего лишь используемая версия, но если это вас беспокоит или нарушает корпоративную политику 
безопасности, то создание пустого файла .h2o_no_collect в вашей домашней папке (C:\Users\YourName\ в Windows) остановит данный процесс. Вы будете знать, 
что это сработало, увидев сообщение «Opted out of sending usage metrics.» в логах. 
Другой способ отключения сбора информации представлен в разделе «Запуск из 
командной строки» главы 10.

1 http://bit.ly/2f96Hyu по состоянию на июнь 2016-го.

Установка H2O при помощи R (CRAN)  15

Установка Java
У вас должна быть установлена платформа Java, которую вы можете получить на 
странице загрузки http://bit.ly/16mhImY. Выберите вариант JDK1. Если вы думаете, 
что у вас уже есть Java JDK, но не уверены в этом, то можете двигаться дальше 
и установить H2O, а затем при необходимости вернуться к этому пункту и (пере)
установить Java.

установКа H2O при помощи R (CRAN)

Если вы не используете R, можете перейти к разделу «Установка H2O при помощи 
Python (pip)».
Запустите R и введите команду install.packages("h2o"). Да, когда я говорил 
о простоте установки, я не шутил. Эта команда также установит все зависимости.
Если вы впервые используете CRAN2, нужно будет выбрать используемое зеркало для скачивания (лучше всего в месте, ближайшем к вам, но можно выбрать 
и такое, куда бы вы хотели поехать и сделать селфи).
Если хотите установить H2O для всех пользователей на данном компьютере, запустите R с правами суперпользователя командой sudo R, затем введите команду 
install.packages("h2o").
Давайте проверим, все ли работает, набрав команду library(h2o). Если нет никаких тревожных сообщений, переходим к следующему шагу: h2o.init(). При должном везении вы увидите большое количество информации о запуске H2O, а также 
о вашем кластере, подобно представленной на рис. 1.1. В противном случае сообщение об ошибке укажет на отсутствующие зависимости или другие проблемы.
Версия H2O на CRAN может отставать на месяц или два от самой свежей и самой лучшей. Но не беспокойтесь об этом до тех пор, пока не столкнетесь с багом, 
исправленным в этой новейшей версии.
h2o.init() по умолчанию будет использовать только два ядра на вашем ПК и, 
возможно, четверть оперативной памяти3. Используйте команду h2o.shutdown(), 
которая делает именно то, о чем вы догадались. Затем запустите H2O снова, но 
с использованием всех доступных ядер: h2o.init(nthreads = -1). Чтобы использовать все ядра и, скажем, 4 Гб ОЗУ: h2o.init(nthreads = -1, max_mem_size = "4g").

1 Варианты «Server JRE» или «JRE» могут работать с H2O, но я рекомендую всегда устанавливать JDK.

2 CRAN является репозиторием пакетов для R. Дополнительную информацию можно найти на https://cran.r-project.org/.

3 См. http://bit.ly/2gn5h6e, чтобы узнать, как выполнить запрос и определить значения по 
умолчанию для вашей системы.

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