H2O - Установка

H2O можно настроить и использовать с пятью различными параметрами, перечисленными ниже:

  • Установить в Python

  • Установить в R

  • Веб-интерфейс Flow GUI

  • Hadoop

  • Анаконда Облако

В наших последующих разделах вы увидите инструкции по установке H2O в зависимости от доступных опций. Скорее всего, вы воспользуетесь одним из вариантов.

Установить в Python

Чтобы запустить H2O с Python, для установки требуется несколько зависимостей. Итак, приступим к установке минимального набора зависимостей для запуска H2O.

Установка зависимостей

Чтобы установить зависимость, выполните следующую команду pip -

$ pip install requests

Откройте окно консоли и введите указанную выше команду, чтобы установить пакет запросов. На следующем снимке экрана показано выполнение указанной выше команды на нашем компьютере Mac -

После установки запросов вам необходимо установить еще три пакета, как показано ниже -

$ pip install tabulate
$ pip install "colorama >= 0.3.8"
$ pip install future

Самый последний список зависимостей доступен на странице H2O GitHub. На момент написания этой статьи на странице перечислены следующие зависимости.

python 2. H2O — Installation
pip >= 9.0.1
setuptools
colorama >= 0.3.7
future >= 0.15.2

Удаление старых версий

После установки вышеуказанных зависимостей вам необходимо удалить все существующие установки H2O. Для этого выполните следующую команду -

$ pip uninstall h2o

Установка последней версии

Теперь давайте установим последнюю версию H2O, используя следующую команду -

$ pip install -f http://h2o-release.s3.amazonaws.com/h2o/latest_stable_Py.html h2o

После успешной установки вы должны увидеть на экране следующее сообщение -

Installing collected packages: h2o
Successfully installed h2o-3.26.0.1

Тестирование установки

Чтобы проверить установку, мы запустим одно из примеров приложений, предоставленных в установке H2O. Сначала запустите командную строку Python, набрав следующую команду -

$ Python3

После запуска интерпретатора Python введите следующий оператор Python в командной строке Python:

>>>import h2o

Приведенная выше команда импортирует пакет H2O в вашу программу. Затем инициализируйте систему H2O, используя следующую команду -

>>>h2o.init()

На вашем экране будет отображаться информация о кластере, и на этом этапе он должен выглядеть следующим образом:

Теперь вы готовы запустить образец кода. Введите следующую команду в командной строке Python и выполните ее.

>>>h2o.demo("glm")

Демонстрация состоит из записной книжки Python с рядом команд. После выполнения каждой команды ее вывод немедленно отображается на экране, и вам будет предложено нажать клавишу, чтобы продолжить следующий шаг. Частичный снимок экрана с выполнением последнего оператора в записной книжке показан здесь -

На этом установка Python завершена, и вы готовы к собственным экспериментам.

Установить в R

Установка H2O для разработки R очень похожа на ее установку для Python, за исключением того, что вы будете использовать приглашение R.

Запуск R Console

Запустите консоль R, щелкнув значок приложения R на вашем компьютере. Экран консоли появится, как показано на следующем снимке экрана -

Ваша установка H2O будет выполнена в командной строке R. Если вы предпочитаете использовать RStudio, введите команды в подокне консоли R.

Удаление старых версий

Для начала удалите более старые версии, используя следующую команду в строке R -

> if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
> if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }

Скачивание зависимостей

Загрузите зависимости для H2O, используя следующий код -

> pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
   if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}

Установка H2O

Установите H2O, введя следующую команду в командной строке R -

> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))

На следующем снимке экрана показан ожидаемый результат -

Есть еще один способ установки H2O в R.

Установить в R из CRAN

Чтобы установить R из CRAN, используйте следующую команду в приглашении R -

> install.packages("h2o")

Вам будет предложено выбрать зеркало -

--- Please select a CRAN mirror for use in this session ---

На экране появится диалоговое окно со списком зеркальных сайтов. Выберите ближайшее место или зеркало по вашему выбору.

Тестовая установка

В командной строке R введите и запустите следующий код -

> library(h2o)
> localH2O = h2o.init()
> demo(h2o.kmeans)

Сгенерированный результат будет таким, как показано на следующем снимке экрана -

Теперь ваша установка H2O в R завершена.

Установка Web GUI Flow

Чтобы установить GUI Flow, загрузите установочный файл с сайта H20. Разархивируйте загруженный файл в нужную папку. Обратите внимание на наличие файла h2o.jar в установке. Запустите этот файл в командном окне, используя следующую команду -

$ java -jar h2o.jar

Через некоторое время в окне консоли появится следующее.

07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO: H2O started in 7725ms
07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO:
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO: Open H2O Flow in your web browser: http://192.168.1.18:54321
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO:

Чтобы запустить поток, откройте указанный URL http://localhost:54321в вашем браузере. Появится следующий экран -

На этом установка Flow завершена.

Установить в Hadoop / Anaconda Cloud

Если вы не являетесь опытным разработчиком, вам и в голову не пришло бы использовать H2O для больших данных. Здесь достаточно сказать, что модели H2O эффективно работают в огромных базах данных размером в несколько терабайт. Если ваши данные находятся в вашей установке Hadoop или в облаке, следуйте инструкциям на сайте H2O, чтобы установить их для соответствующей базы данных.

Теперь, когда вы успешно установили и протестировали H2O на своем компьютере, вы готовы к реальной разработке. Сначала мы увидим развитие из командной строки. В наших последующих уроках мы узнаем, как проводить тестирование модели в H2O Flow.

Разработка в командной строке

Давайте теперь рассмотрим использование H2O для классификации растений из хорошо известного набора данных iris, который бесплатно доступен для разработки приложений машинного обучения.

Запустите интерпретатор Python, набрав следующую команду в окне оболочки:

$ Python3

Это запускает интерпретатор Python. Импортируйте платформу H2O с помощью следующей команды -

>>> import h2o

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

>>> from h2o.estimators import H2ORandomForestEstimator

Мы инициализируем среду H2o, вызывая ее метод init.

>>> h2o.init()

При успешной инициализации вы должны увидеть следующее сообщение на консоли вместе с информацией о кластере.

Checking whether there is an H2O instance running at http://localhost:54321 . connected.

Теперь мы импортируем данные радужной оболочки глаза с помощью метода import_file в H2O.

>>> data = h2o.import_file('iris.csv')

Прогресс будет отображаться, как показано на следующем снимке экрана -

После того, как файл загружен в память, вы можете проверить это, отобразив первые 10 строк загруженной таблицы. Вы используетеhead способ сделать это -

>>> data.head()

Вы увидите следующий результат в табличном формате.

В таблице также отображаются имена столбцов. Мы будем использовать первые четыре столбца в качестве функций для нашего алгоритма машинного обучения, а последний класс столбца - в качестве прогнозируемого вывода. Мы указываем это в вызове нашего алгоритма машинного обучения, сначала создавая следующие две переменные.

>>> features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
>>> output = 'class'

Затем мы разделяем данные на обучение и тестирование, вызывая метод split_frame.

>>> train, test = data.split_frame(ratios = [0.8])

Данные разделены в соотношении 80:20. Мы используем 80% данных для обучения и 20% для тестирования.

Теперь мы загружаем в систему встроенную модель случайного леса.

>>> model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)

В приведенном выше вызове мы установили количество деревьев равным 50, максимальную глубину дерева равной 20 и количество складок для перекрестной проверки равным 10. Теперь нам нужно обучить модель. Мы делаем это, вызывая метод поезда следующим образом:

>>> model.train(x = features, y = output, training_frame = train)

Метод train получает функции и выходные данные, которые мы создали ранее, в качестве первых двух параметров. Набор обучающих данных настроен на обучение, что составляет 80% от нашего полного набора данных. Во время тренировки вы увидите прогресс, как показано здесь -

Теперь, когда процесс построения модели завершен, пришло время протестировать модель. Мы делаем это, вызывая метод model_performance для обученного объекта модели.

>>> performance = model.model_performance(test_data=test)

В приведенном выше вызове метода мы отправили тестовые данные в качестве параметра.

Пришло время увидеть результат - производительность нашей модели. Вы делаете это, просто распечатывая исполнение.

>>> print (performance)

Это даст вам следующий результат -

Выходные данные показывают среднеквадратичную ошибку (MSE), среднеквадратическую ошибку (RMSE), LogLoss и даже матрицу неточности.

Запуск в Jupyter

Мы видели выполнение команды, а также понимали цель каждой строки кода. Вы можете запускать весь код в среде Jupyter либо построчно, либо всю программу за раз. Полный список приведен здесь -

import h2o
from h2o.estimators import H2ORandomForestEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios=[0.8])
model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data=test)
print (performance)

Запустите код и посмотрите на результат. Теперь вы можете оценить, насколько легко применить и протестировать алгоритм случайного леса на вашем наборе данных. Сила H20 выходит далеко за рамки этой возможности. Что делать, если вы хотите попробовать другую модель в том же наборе данных, чтобы увидеть, сможете ли вы повысить производительность. Это объясняется в нашем следующем разделе.

Применение другого алгоритма

Теперь мы узнаем, как применить алгоритм повышения градиента к нашему предыдущему набору данных, чтобы увидеть, как он работает. В приведенном выше полном листинге вам нужно будет внести только два незначительных изменения, как показано в приведенном ниже коде:

import h2o 
from h2o.estimators import H2OGradientBoostingEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios = [0.8]) 
model = H2OGradientBoostingEstimator
(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data = test)
print (performance)

Запустите код, и вы получите следующий результат -

Просто сравните результаты, такие как MSE, RMSE, Confusion Matrix и т. Д., С предыдущими выходными данными и решите, какой из них использовать для производственного развертывания. Фактически, вы можете применить несколько разных алгоритмов, чтобы выбрать лучший, который соответствует вашим целям.