Машинное обучение с использованием библиотеки Н2О
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Кук Даррен
Перевод:
Огурцов А. Б.
Год издания: 2018
Кол-во страниц: 250
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-508-0
Артикул: 712484.01.99
Доступ онлайн
В корзину
Н20 - простая в использовании и открытая библиотека, которая поддерживает большое количество операционных систем и языков программирования, а также масштабируется для обработки больших данных. Эта книга научит вас использовать алгоритмы машинного обучения, реализованные в Н20, с упором на наиболее важные для продуктивной работы аспекты. Рассмотрены глубокое обучение, случайный лес, обучение на неразмеченных данных и ансамбли моделей. В российское издание добавлены дополнительно два приложения, описывающих новейшие модули Н20 - Deep Water и Stacked Ensemble. Их также можно найти в репозитории https://github.com/statist-bhfz/h2o_book_translate.
Издание предназначено для специалистов по анализу данных, желающих изучить и применять на практике относительно новый, но многообещающий инструмент-библиотеку Н20.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Даррен Кук Машинное обучение с использованием библиотеки Н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, чтобы узнать, как выполнить запрос и определить значения по умолчанию для вашей системы.
Доступ онлайн
В корзину