Pour toute question sans réponse dans ce dossier ou dans la documentation H2O-3, veuillez utiliser :
H2O est une plateforme en mémoire pour l'apprentissage automatique distribué et évolutif. H2O utilise des interfaces familières telles que R, Python, Scala, Java, JSON et l'interface notebook/web Flow, et fonctionne de manière transparente avec les technologies Big Data comme Hadoop et Spark. H2O fournit des implémentations de nombreux algorithmes populaires tels que les modèles linéaires généralisés (GLM), les machines d'amplification de gradient (y compris XGBoost), les forêts aléatoires, les réseaux de neurones profonds, les ensembles empilés, les Bayes naïfs, les modèles additifs généralisés (GAM), les risques proportionnels de Cox, K- Means, PCA, Word2Vec, ainsi qu'un algorithme d'apprentissage automatique entièrement automatique (H2O AutoML).
H2O est extensible afin que les développeurs puissent ajouter des transformations de données et des algorithmes personnalisés de leur choix et y accéder via tous ces clients. Les modèles H2O peuvent être téléchargés et chargés dans la mémoire H2O pour la notation, ou exportés au format POJO ou MOJO pour une notation extrêmement rapide en production. Plus d’informations peuvent être trouvées dans le guide de l’utilisateur H2O.
H2O-3 (ce référentiel) est la troisième incarnation de H2O et le successeur de H2O-2.
Bien que la majeure partie de ce README soit écrite pour les développeurs qui réalisent leurs propres versions, la plupart des utilisateurs de H2O téléchargent et utilisent simplement une version prédéfinie. Si vous êtes un utilisateur Python ou R, le moyen le plus simple d'installer H2O est via PyPI ou Anaconda (pour Python) ou CRAN (pour R) :
pip install h2o
install.packages( " h2o " )
Pour les dernières versions stables et nocturnes de Hadoop (ou Spark / Sparkling Water), ou pour le pot H2O autonome, veuillez visiter : https://h2o.ai/download
Plus d'informations sur le téléchargement et l'installation de H2O sont disponibles dans le guide de l'utilisateur H2O.
La plupart des gens interagissent avec trois ou quatre ressources open source principales : GitHub (que vous avez déjà trouvé), les problèmes GitHub (pour les rapports de bogues et le suivi des problèmes), Stack Overflow pour les questions spécifiques au code/logiciel H2O et h2ostream (un groupe Google / forum de discussion par e-mail) pour les questions qui ne conviennent pas à Stack Overflow. Il existe également un groupe de discussion pour les développeurs Gitter H2O, mais à des fins d'archivage et pour maximiser l'accessibilité, nous préférerions que les questions et réponses H2O standard soient menées sur Stack Overflow.
Vous pouvez parcourir et créer de nouveaux problèmes dans notre référentiel GitHub : https://github.com/h2oai/h2o-3
Issues
en haut de la pageGitHub
Problèmes GitHub – déposer des rapports de bogues/suivre les problèmes ici
Stack Overflow - posez toutes les questions sur le code/logiciel ici
Validation croisée (Stack Exchange) - posez des questions sur l'algorithme/la théorie ici
h2ostream Google Group - posez ici des questions non liées au code
Chat avec les développeurs Gitter H2O
Documentation
Télécharger (packages prédéfinis)
Site web
Twitter – suivez-nous pour les mises à jour et les actualités H2O !
Awesome H2O : partagez avec nous vos créations alimentées par H2O
Chaque build nocturne publie des artefacts R, Python, Java et Scala dans un référentiel spécifique à la build. Vous pouvez notamment trouver des artefacts Java dans le répertoire maven/repo.
Voici un exemple d'extrait d'un fichier de construction Gradle utilisant h2o-3 comme dépendance. Remplacez x, y, z et nnnn par des nombres valides.
// h2o-3 dependency information
def h2oBranch = 'master'
def h2oBuildNumber = 'nnnn'
def h2oProjectVersion = "x.y.z.${h2oBuildNumber}"
repositories {
// h2o-3 dependencies
maven {
url "https://s3.amazonaws.com/h2o-release/h2o-3/${h2oBranch}/${h2oBuildNumber}/maven/repo/"
}
}
dependencies {
compile "ai.h2o:h2o-core:${h2oProjectVersion}"
compile "ai.h2o:h2o-algos:${h2oProjectVersion}"
compile "ai.h2o:h2o-web:${h2oProjectVersion}"
compile "ai.h2o:h2o-app:${h2oProjectVersion}"
}
Reportez-vous à la dernière page de build nocturne de H2O-3 pour plus d’informations sur l’installation des artefacts de build nocturne.
Reportez-vous au référentiel GitHub h2o-droplets pour un exemple pratique d'utilisation des artefacts Java avec Gradle.
Remarque : les artefacts stables H2O-3 sont publiés périodiquement sur Maven Central (cliquez ici pour effectuer une recherche), mais peuvent être considérablement en retard par rapport aux versions nocturnes de H2O-3 Bleeding Edge.
Démarrer avec le développement H2O nécessite JDK 1.8+, Node.js, Gradle, Python et R. Nous utilisons le wrapper Gradle (appelé gradlew
) pour garantir que les versions locales à jour de Gradle et d'autres dépendances sont installées dans votre répertoire de développement.
Construire h2o
nécessite un environnement R correctement configuré avec les packages requis et un environnement Python avec les packages suivants :
grip
tabulate
requests
wheel
Pour installer ces packages, vous pouvez utiliser pip ou conda. Si vous rencontrez des difficultés pour installer ces packages sous Windows , veuillez suivre la section Configuration sous Windows de ce guide.
(Remarque : il est recommandé d'utiliser un environnement virtuel tel que VirtualEnv pour installer tous les packages.)
Pour créer H2O à partir du référentiel, effectuez les étapes suivantes.
# Build H2O
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew build -x test
You may encounter problems: e.g. npm missing. Install it:
brew install npm
# Start H2O
java -jar build/h2o.jar
# Point browser to http://localhost:54321
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build
Remarques :
- L'exécution de tests démarre cinq JVM de test qui forment un cluster H2O et nécessitent au moins 8 Go de RAM (de préférence 16 Go de RAM).
- L'exécution de
./gradlew syncRPackages
est prise en charge sous Windows, OS X et Linux et est fortement recommandée mais pas obligatoire../gradlew syncRPackages
garantit un environnement complet et cohérent avec des versions pré-approuvées des packages requis pour les tests et les builds. Les packages peuvent être installés manuellement, mais nous vous recommandons de définir une variable ENV et d'utiliser./gradlew syncRPackages
. Pour définir la variable ENV, utilisez le format suivant (où `${WORKSPACE} peut être n'importe quel chemin) :mkdir -p ${WORKSPACE}/Rlibrary export R_LIBS_USER=${WORKSPACE}/Rlibrary
git pull
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew clean
./gradlew build
Nous vous recommandons d'utiliser ./gradlew clean
après chaque git pull
.
Ignorez les tests en ajoutant -x test
à la fin de la ligne de commande gradle build. Les tests durent généralement 7 à 10 minutes sur un ordinateur portable Macbook Pro doté de 4 processeurs (8 hyperthreads) et de 16 Go de RAM.
La synchronisation de smalldata n'est pas requise après chaque extraction, mais si les tests échouent en raison de fichiers de données manquants, essayez ./gradlew syncSmalldata
comme première étape de dépannage. La synchronisation de smalldata télécharge les fichiers de données d'AWS S3 vers le répertoire smalldata de votre espace de travail. La synchronisation est incrémentielle. N'archivez pas ces fichiers. Le répertoire smalldata est dans .gitignore. Si vous n'exécutez aucun test, vous n'avez pas besoin du répertoire smalldata.
L'exécution de ./gradlew syncRPackages
est prise en charge sous Windows, OS X et Linux et est fortement recommandée mais pas obligatoire. ./gradlew syncRPackages
garantit un environnement complet et cohérent avec des versions pré-approuvées des packages requis pour les tests et les builds. Les packages peuvent être installés manuellement, mais nous vous recommandons de définir une variable ENV et d'utiliser ./gradlew syncRPackages
. Pour définir la variable ENV, utilisez le format suivant (où ${WORKSPACE}
peut être n'importe quel chemin) :
mkdir -p ${WORKSPACE}/Rlibrary
export R_LIBS_USER=${WORKSPACE}/Rlibrary
./gradlew clean && ./gradlew build -x test && (export DO_FAST=1; ./gradlew dist)
open target/docs-website/h2o-docs/index.html
La racine du référentiel git contient un Makefile avec des raccourcis pratiques pour les cibles de build fréquemment utilisées en développement. Pour construire h2o.jar
en ignorant les tests ainsi que la construction d'assemblys alternatifs, exécutez
make
Pour construire h2o.jar
en utilisant l'assembly minimal, exécutez
make minimal
L'assemblage minimal est bien adapté au développement d'algorithmes d'apprentissage automatique H2O. Il ne regroupe pas certaines dépendances lourdes (comme Hadoop) et son utilisation permet de gagner du temps de construction ainsi que de devoir télécharger de grandes bibliothèques à partir des référentiels Maven.
À partir de la ligne de commande, vérifiez que python
utilise le package nouvellement installé en utilisant which python
(ou sudo which python
). Mettez à jour la variable d'environnement avec le chemin WinPython.
pip install grip tabulate wheel
Installez Java 1.8+ et ajoutez le répertoire approprié C:Program FilesJavajdk1.7.0_65bin
avec java.exe au PATH dans les variables d'environnement. Pour vous assurer que l'invite de commande détecte la bonne version de Java, exécutez :
javac -version
La variable CLASSPATH doit également être définie dans le sous-dossier lib du JDK :
CLASSPATH=/<path>/<to>/<jdk>/lib
Installez Node.js et ajoutez le répertoire installé C:Program Filesnodejs
, qui doit inclure node.exe et npm.cmd à PATH s'il n'est pas déjà ajouté.
Installez R et ajoutez le répertoire bin à votre PATH s'il n'est pas déjà inclus.
Installez les packages R suivants :
Pour installer ces packages à partir d'une session R :
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
Notez que libcurl est requis pour l'installation du package RCurl R.
Notez que ces packages ne couvrent pas l'exécution des tests, mais uniquement la construction de H2O.
Enfin, installez Rtools, qui est un ensemble d'outils de ligne de commande pour faciliter le développement R sous Windows.
REMARQUE : lors de l'installation de Rtools, n'installez pas Cygwin.dll.
REMARQUE : Lors de l'installation de Cygwin, désélectionnez les packages Python pour éviter un conflit avec le package Python.org.
Si Cygwin est déjà installé, supprimez les packages Python ou assurez-vous que Native Python est avant Cygwin dans la variable PATH.
Si vous n'avez pas encore de client Git, veuillez en installer un. Celui par défaut peut être trouvé ici http://git-scm.com/downloads. Assurez-vous que la prise en charge de l'invite de commande est activée avant l'installation.
Téléchargez et mettez à jour les codes sources h2o-3 :
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew.bat build
Si vous rencontrez des erreurs, réexécutez avec
--stacktrace
pour plus d'instructions sur les dépendances manquantes.
Si vous n'avez pas Homebrew, nous vous recommandons de l'installer. Cela facilite la gestion des packages pour OS X.
Installez Java 1.8+. Pour vous assurer que l'invite de commande détecte la bonne version de Java, exécutez :
javac -version
Utiliser Homebrew :
brew install node
Sinon, installez depuis le site Web NodeJS.
Installez R et ajoutez le répertoire bin à votre PATH s'il n'est pas déjà inclus.
Installez les packages R suivants :
Pour installer ces packages à partir d'une session R :
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
Notez que libcurl est requis pour l'installation du package RCurl R.
Notez que ces packages ne couvrent pas l'exécution des tests, mais uniquement la construction de H2O.
Installez Python :
brew install python
Installez le gestionnaire de paquets pip :
sudo easy_install pip
Prochaine installation des packages requis :
sudo pip install wheel requests tabulate
OS X devrait déjà avoir Git installé. Pour télécharger et mettre à jour les codes sources h2o-3 :
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
Remarque : sur une machine standard, l'exécution de tous les tests peut prendre beaucoup de temps (environ une heure).
Si vous rencontrez des erreurs, réexécutez avec
--stacktrace
pour plus d'instructions sur les dépendances manquantes.
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs
Installez Java 8. Les instructions d'installation peuvent être trouvées ici Installation du JDK. Pour vous assurer que l'invite de commande détecte la bonne version de Java, exécutez :
javac -version
Les instructions d’installation peuvent être trouvées ici R installation. Cliquez sur « Télécharger R pour Linux ». Cliquez sur "ubuntu". Suivez les instructions données.
Pour installer les packages requis, suivez les mêmes instructions que pour OS X ci-dessus.
Remarque : Si le processus ne parvient pas à installer RStudio Server sous Linux, exécutez l'une des opérations suivantes :
sudo apt-get install libcurl4-openssl-dev
ou
sudo apt-get install libcurl4-gnutls-dev
Si vous n'avez pas encore de client Git :
sudo apt-get install git
Téléchargez et mettez à jour les codes sources h2o-3 :
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
Si vous rencontrez des erreurs, réexécutez en utilisant
--stacktrace
pour plus d'instructions sur les dépendances manquantes.
Assurez-vous que vous n'exécutez pas en tant que root, car
bower
rejettera une telle exécution.
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt-get install -y nodejs
cd /opt
sudo wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"
sudo tar xzf jdk-7u79-linux-x64.tar.gz
cd jdk1.7.0_79
sudo alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
sudo alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_79/bin/jar 2
sudo alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_79/bin/javac 2
sudo alternatives --set jar /opt/jdk1.7.0_79/bin/jar
sudo alternatives --set javac /opt/jdk1.7.0_79/bin/javac
cd /opt
sudo wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
sudo rpm -ivh epel-release-7-5.noarch.rpm
sudo echo "multilib_policy=best" >> /etc/yum.conf
sudo yum -y update
sudo yum -y install R R-devel git python-pip openssl-devel libxml2-devel libcurl-devel gcc gcc-c++ make openssl-devel kernel-devel texlive texinfo texlive-latex-fonts libX11-devel mesa-libGL-devel mesa-libGL nodejs npm python-devel numpy scipy python-pandas
sudo pip install scikit-learn grip tabulate statsmodels wheel
mkdir ~/Rlibrary
export JAVA_HOME=/opt/jdk1.7.0_79
export JRE_HOME=/opt/jdk1.7.0_79/jre
export PATH=$PATH:/opt/jdk1.7.0_79/bin:/opt/jdk1.7.0_79/jre/bin
export R_LIBS_USER=~/Rlibrary
# install local R packages
R -e 'install.packages(c("RCurl","jsonlite","statmod","devtools","roxygen2","testthat"), dependencies=TRUE, repos="http://cran.rstudio.com/")'
cd
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
# Build H2O
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build -x test
Pour démarrer le cluster H2O localement, exécutez ce qui suit sur la ligne de commande :
java -jar build/h2o.jar
Une liste des options de démarrage JVM et H2O disponibles (par exemple -Xmx
, -nthreads
, -ip
) est disponible dans le guide de l'utilisateur H2O.
Les fichiers zip H2O-on-Hadoop prédéfinis sont disponibles sur la page de téléchargement. Chaque version de la distribution Hadoop possède un fichier zip distinct dans h2o-3.
Pour créer vous-même H2O avec le support Hadoop, installez d'abord sphinx pour python : pip install sphinx
Ensuite, démarrez la construction en saisissant ce qui suit à partir du répertoire h2o-3 de niveau supérieur :
export BUILD_HADOOP=1;
./gradlew build -x test;
./gradlew dist;
Cela créera un répertoire appelé « cible » et y générera des fichiers zip. Notez que BUILD_HADOOP
est le comportement par défaut lorsque le nom d'utilisateur est jenkins
(voir settings.gradle
) ; sinon vous devez en faire la demande, comme indiqué ci-dessus.
Pour créer les fichiers zip uniquement pour les distributions sélectionnées, utilisez la variable d'environnement H2O_TARGET
avec BUILD_HADOOP
, par exemple :
export BUILD_HADOOP=1;
export H2O_TARGET=hdp2.5,hdp2.6
./gradlew build -x test;
./gradlew dist;
Dans le répertoire h2o-hadoop
, chaque version de Hadoop possède un répertoire de construction pour le pilote et un répertoire d'assemblage pour le fatjar.
Vous devez:
build.gradle
) dans h2o-hadoop
h2o-3/settings.gradle
HADOOP_VERSIONS
dans make-dist.sh
h2o-dist/buildinfo.json
Hadoop prend en charge l'usurpation d'identité sécurisée des utilisateurs via son API Java. Un utilisateur authentifié par Kerberos peut être autorisé à utiliser par proxy n'importe quel nom d'utilisateur répondant aux critères spécifiés entrés dans le fichier core-site.xml de NameNode. Cette usurpation d'identité s'applique uniquement aux interactions avec l'API Hadoop ou les API des services liés à Hadoop qui la prennent en charge (ce n'est pas la même chose que de basculer vers cet utilisateur sur la machine d'origine).
Configuration de l'usurpation d'identité sécurisée (pour h2o) :
hadoop.proxyuser.<proxyusername>.hosts
: les hôtes à partir desquels l'utilisateur proxy est autorisé à effectuer des actions d'emprunt d'identité au nom d'un utilisateur valide.hadoop.proxyuser.<proxyusername>.groups
: les groupes auxquels un utilisateur usurpé doit appartenir pour que l'usurpation d'identité fonctionne avec cet utilisateur proxyhadoop.proxyuser.<proxyusername>.users
: les utilisateurs qu'un utilisateur proxy est autorisé à usurper l'identité<property> <name>hadoop.proxyuser.myproxyuser.hosts</name> <value>host1,host2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.groups</name> <value>group1,group2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.users</name> <value>user1,user2</value> </property>
Les actions HDFS usurpées peuvent être visualisées dans le journal d'audit hdfs (« auth:PROXY » doit apparaître dans le champ ugi=
dans les entrées où cela est applicable). De la même manière, YARN devrait afficher « auth:PROXY » quelque part dans l'interface utilisateur du gestionnaire de ressources.
Pour utiliser l'usurpation d'identité sécurisée avec le pilote Hadoop de h2o :
Avant de tenter cette opération, consultez la section Risques liés à l'usurpation d'identité ci-dessous.
Lorsque vous utilisez h2odriver (par exemple lors de l'exécution avec hadoop jar ...
), spécifiez -principal <proxy user kerberos principal>
, -keytab <proxy user keytab path>
et -run_as_user <hadoop username to impersonate>
, en plus de tout autre arguments nécessaires. Si la configuration a réussi, l'utilisateur proxy se connectera et empruntera l'identité -run_as_user
tant que cet utilisateur est autorisé par la propriété de configuration des utilisateurs ou des groupes (configurée ci-dessus) ; ceci est appliqué par HDFS & YARN, pas par le code de h2o. Le pilote définit efficacement son contexte de sécurité en tant qu'utilisateur usurpé, de sorte que toutes les actions Hadoop prises en charge seront effectuées en tant qu'utilisateur (par exemple, les API YARN et HDFS prennent en charge les utilisateurs usurpés de manière sécurisée, mais d'autres ne le peuvent pas).
hadoop.proxyuser.<proxyusername>.hosts
chaque fois que cela est possible ou pratique.su
, par exemple)hadoop.proxyuser.<proxyusername>.{hosts,groups,users}
sur « * » peut considérablement augmenter l'exposition aux risques de sécurité. $ git diff
diff --git a/h2o-app/build.gradle b/h2o-app/build.gradle
index af3b929..097af85 100644
--- a/h2o-app/build.gradle
+++ b/h2o-app/build.gradle
@@ -8,5 +8,6 @@ dependencies {
compile project(":h2o-algos")
compile project(":h2o-core")
compile project(":h2o-genmodel")
+ compile project(":h2o-persist-hdfs")
}
diff --git a/h2o-persist-hdfs/build.gradle b/h2o-persist-hdfs/build.gradle
index 41b96b2..6368ea9 100644
--- a/h2o-persist-hdfs/build.gradle
+++ b/h2o-persist-hdfs/build.gradle
@@ -2,5 +2,6 @@ description = "H2O Persist HDFS"
dependencies {
compile project(":h2o-core")
- compile("org.apache.hadoop:hadoop-client:2.0.0-cdh4.3.0")
+ compile("org.apache.hadoop:hadoop-client:2.4.1-mapr-1408")
+ compile("org.json:org.json:chargebee-1.0")
}
Sparkling Water combine deux technologies open source : Apache Spark et la plateforme H2O Machine Learning. Il rend la bibliothèque d'algorithmes avancés de H2O, notamment Deep Learning, GLM, GBM, K-Means et Distributed Random Forest, accessible à partir des flux de travail Spark. Les utilisateurs de Spark peuvent sélectionner les meilleures fonctionnalités de l'une ou l'autre plateforme pour répondre à leurs besoins en Machine Learning. Les utilisateurs peuvent combiner l'API RDD et Spark MLLib de Spark avec les algorithmes d'apprentissage automatique de H2O, ou utiliser H2O indépendamment de Spark pour le processus de création de modèles et post-traiter les résultats dans Spark.
Ressources en eau gazeuse :
La principale documentation de H2O est le guide de l'utilisateur de H2O. Visitez http://docs.h2o.ai pour une introduction de haut niveau à la documentation sur les projets H2O.
Pour générer la documentation de l'API REST, utilisez les commandes suivantes :
cd ~/h2o-3
cd py
python ./generate_rest_api_docs.py # to generate Markdown only
python ./generate_rest_api_docs.py --generate_html --github_user GITHUB_USER --github_password GITHUB_PASSWORD # to generate Markdown and HTML
L'emplacement par défaut de la documentation générée est build/docs/REST
.
Si la construction échoue, essayez gradlew clean
, puis git clean -f
.
La documentation pour chaque build nocturne de pointe est disponible sur la page de build nocturne.
Si vous utilisez H2O dans le cadre de votre flux de travail dans une publication, veuillez citer votre ou vos ressources H2O en utilisant l'entrée BibTex suivante :
@Manual{h2o_package_or_module,
title = {package_or_module_title},
author = {H2O.ai},
year = {year},
month = {month},
note = {version_information},
url = {resource_url},
}
Exemples de citations du logiciel H2O formaté :
Les livrets d'algorithmes H2O sont disponibles sur la page d'accueil de la documentation.
@Manual{h2o_booklet_name,
title = {booklet_title},
author = {list_of_authors},
year = {year},
month = {month},
url = {link_url},
}
Exemples de citations de livrets formatés :
Arora, A., Candel, A., Lanford, J., LeDell, E. et Parmar, V. (octobre 2016). Apprentissage profond avec H2O . http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/DeepLearningBooklet.pdf.
Click, C., Lanford, J., Malohlava, M., Parmar, V. et Roark, H. (octobre 2016). Modèles améliorés par dégradé avec H2O . http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/GBMBooklet.pdf.
H2O a été construit par un grand nombre de contributeurs au fil des années, tant au sein de H2O.ai (l'entreprise) que de la communauté open source dans son ensemble. Vous pouvez commencer à contribuer à H2O en répondant aux questions de Stack Overflow ou en déposant des rapports de bogues. S'il vous plaît, rejoignez-nous !
SriSatish Ambati
Cliff Click
Tom Kraljevic
Tomas Nykodym
Michal Malohlava
Kevin Normoyle
Spencer Aiello
Anqi Fu
Nidhi Mehta
Arno Candel
Josephine Wang
Amy Wang
Max Schloemer
Ray Peck
Prithvi Prabhu
Brandon Hill
Jeff Gambera
Ariel Rao
Viraj Parmar
Kendall Harris
Anand Avati
Jessica Lanford
Alex Tellez
Allison Washburn
Amy Wang
Erik Eckstrand
Neeraja Madabhushi
Sebastian Vidrio
Ben Sabrin
Matt Dowle
Mark Landry
Erin LeDell
Andrey Spiridonov
Oleg Rogynskyy
Nick Martin
Nancy Jordan
Nishant Kalonia
Nadine Hussami
Jeff Cramer
Stacie Spreitzer
Vinod Iyengar
Charlene Windom
Parag Sanghavi
Navdeep Gill
Lauren DiPerna
Anmol Bal
Mark Chan
Nick Karpov
Avni Wadhwa
Ashrith Barthur
Karen Hayrapetyan
Jo-fai Chow
Dmitry Larko
Branden Murray
Jakub Hava
Wen Phan
Magnus Stensmo
Pasha Stetsenko
Angela Bartz
Mateusz Dymczyk
Micah Stubbs
Ivy Wang
Terone Ward
Leland Wilkinson
Wendy Wong
Nikhil Shekhar
Pavel Pscheidl
Michal Kurka
Veronika Maurerova
Jan Sterba
Jan Jendrusak
Sebastien Poirier
Tomáš Frýda
Ard Kelmendi
Yuliia Syzon
Adam Valenta
Marek Novotny
Zuzana Olajcova
Conseil consultatif scientifique
Stephen Boyd
Rob Tibshirani
Trevor Hastie
Systèmes, données, systèmes de fichiers et Hadoop
Doug Lea
Chris Pouliot
Dhruba Borthakur
Jishnu Bhattacharjee, Nexus Venture Partners
Anand Babu Periasamy
Anand Rajaraman
Ash Bhardwaj
Rakesh Mathur
Michael Marks
Egbert Bierman
Rajesh Ambati