H2O — это распределенная платформа машинного обучения в памяти с полностью открытым исходным кодом и линейной масштабируемостью. Основной код H2O написан на java, он имеет расширенный интерфейс для таких языков, как scala, python и R.

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

Требования для поддержки H2O:Операционная система — Windows 7 или более поздняя версия, OS X 10.9 или более поздняя версия, Ubuntu 12.04 или более поздняя версия, Cent OS 6 или более поздняя версия. Java 7 или более поздние версии являются основным требованием для установки и запуска H2O.

Установка и кластеризация:

ШАГ 1

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

ШАГ 2

Убедитесь, что один и тот же файл h2o.jar доступен на каждом хосте.

ШАГ 3

Лучший способ заставить несколько узлов H2O найти друг друга — предоставить плоский файл со списком узлов.

Создайте файл flatfile.txt с IP-адресом и портом для каждого экземпляра H2O. Поместите одну запись в строку. Например:

192.168.1.163:54321
192.168.1.164:54321

(Обратите внимание, что параметр -flatfile указывает одному узлу H2O, где найти остальные. Он не заменяет спецификации -ip и -port.)

ШАГ 4

Скопируйте файл flatfile.txt на каждый узел вашего кластера.

ШАГ 5

Параметр Xmx в командной строке Java указывает объем памяти, выделенный одному узлу H2O. Емкость памяти кластера — это сумма всех узлов H2O в кластере.

Например, если пользователь создает кластер с четырьмя узлами по 20 г (указав Xmx20g), H2O будет иметь в общей сложности 80 ГБ памяти.

Для достижения наилучшей производительности мы рекомендуем, чтобы размер вашего кластера примерно в четыре раза превышал размер ваших данных (но во избежание свопинга размер Xmx не должен превышать размер физической памяти на любом заданном узле). Настоятельно рекомендуется предоставить всем узлам одинаковый объем памяти (H2O лучше всего работает с симметричными узлами).

Обратите внимание, что необязательные параметры -ip (не показаны в примере ниже) и -port сообщают этому узлу H2O, к какому IP-адресу и портам (используются порт и порт+1) привязываться. Опция -ip особенно полезна для хостов с несколькими сетевыми интерфейсами.

$ java -Xmx20g -jar h2o.jar -flatfile flatfile.txt -port 54321

ПОДДЕРЖИВАЕМЫЕ ИСТОЧНИКИ ФАЙЛОВ: файлы можно импортировать из различных источников, таких как локальная файловая система, удаленный файл, S3, HDFS, JDBC и Hive.

Действия по манипулированию данными, поддерживаемые во фреймах H2O:Различные действия по манипулированию данными, поддерживаемые во фреймах H2O, включают комбинирование столбцов из двух наборов данных, комбинирование строк из двух наборов данных, заполнение Nas, группировку, импутирование. Данные, объединение двух наборов данных, сводные таблицы, замена значений во фрейме, нарезка столбцов, нарезка строк, сортировка столбцов, разделение наборов данных на обучение/тестирование/проверку и целевое кодирование.

H2O имеет расширенную поддержку ряда алгоритмов машинного обучения, таких как распределенный случайный лес, линейная регрессия, логистическая регрессия, XGBoost, машина повышения градиента, глубокое обучение (многослойный персептрон с обратным распространением и стохастическим градиентным спуском), кластеризация K-средних, PCA, Наивный байесовский классификатор и word2vec.

Построенные модели можно сохранить и использовать позже, все сохраненные модели хранятся как POJO или MOJO.

Показатели производительности, которые могут быть автоматически проверены в H2O:

Для задач, основанных на регрессии: оценка R2, RMSE, MSE, MAE

и

Для задач классификации: AUC, Logloss, Accuracy, F1, F2 Score, Gini Coeffiecient, Confusion Matrix.

Функция AutoML в H2O.H2O имеет возможность автоматического поиска лучшей модели для существующих данных. Функция H2O AutoML зависит от того, что должен быть установлен модуль pandas. Функцию H2O AutoML можно вызвать, просто вызвав функцию H2OAutoML(). Результаты можно просмотреть с помощью опции таблицы лидеров.

Недостатки H2O заключаются в том, что данные нигде не хранятся в виде реплики, поэтому в случае внезапных проблем данные будут потеряны, и их придется начинать с самого начала, но, как упоминалось ранее, построенные модели могут храниться как объекты Java, но данные кадра H2O будут потеряны. .

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