若本文档或 H2O-3 文档 中未找到您问题的答案,请通过以下渠道提问:
H2O 是一个用于分布式、可扩展机器学习的内存计算平台。它支持 R、Python、Scala、Java、JSON 以及 Flow notebook/web 界面等熟悉的接口,并能与 Hadoop 和 Spark 等大数据技术无缝协作。H2O 提供了多种流行算法的实现,包括广义线性模型 (GLM)、梯度提升机(含 XGBoost)、随机森林、深度神经网络、堆叠集成、朴素贝叶斯、广义加性模型 (GAM)、Cox 比例风险模型、K-Means、PCA、Word2Vec,以及全自动机器学习算法 (H2O AutoML)。
H2O 具有可扩展性,开发者可以添加自定义的数据转换和算法,并通过所有客户端进行访问。H2O 模型可以下载并加载到 H2O 内存中进行评分,也可以导出为 POJO 或 MOJO 格式,以便在生产环境中进行极速评分。更多信息请参阅 H2O 用户指南。
H2O-3(本仓库)是 H2O 的第三个版本,也是 H2O-2 的继任者。
虽然本文档大部分内容面向自行构建的开发者,但大多数 H2O 用户只需下载并使用预构建版本。如果您是 Python 或 R 用户,最简单的安装方式是通过 PyPI 或 Anaconda(Python)以及 CRAN(R):
pip install h2o
install.packages("h2o")
如需获取最新的稳定版、每夜构建版、Hadoop(或 Spark / Sparkling Water)发行版,或独立的 H2O jar 包,请访问:https://h2o.ai/download
更多关于下载和安装 H2O 的信息,请参阅 H2O 用户指南。
大多数人主要通过以下三到四个开源资源进行互动:GitHub(您已在此)、GitHub issues(用于错误报告和问题跟踪)、Stack Overflow 用于 H2O 代码/软件相关问题,以及 h2ostream(一个 Google 群组/邮件讨论论坛)用于不适合 Stack Overflow 的问题。此外还有一个 Gitter H2O 开发者聊天群组,但出于归档目的和最大化可访问性考虑,我们更倾向于将标准的 H2O 问答放在 Stack Overflow 上进行。
您可以在我们的 GitHub 仓库中浏览和创建新问题:https://github.com/h2oai/h2o-3
Issues 标签页每个每夜构建都会将 R、Python、Java 和 Scala 构件发布到特定于构建的仓库。特别是,您可以在 maven/repo 目录中找到 Java 构件。
以下是一个使用 h2o-3 作为依赖项的 gradle 构建文件示例片段。请将 x、y、z 和 nnnn 替换为有效数字。
// h2o-3 依赖信息
def h2oBranch = 'master'
def h2oBuildNumber = 'nnnn'
def h2oProjectVersion = "x.y.z.${h2oBuildNumber}"
repositories {
// h2o-3 依赖
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}"
}
有关安装每夜构建构件的信息,请参考最新的 H2O-3 前沿每夜构建页面。
有关如何使用 Java 构件与 gradle 的完整示例,请参考 h2o-droplets GitHub 仓库。
注意:稳定的 H2O-3 构件会定期发布到 Maven Central(点击此处搜索),但可能大大落后于 H2O-3 前沿每夜构建。
开始 H2O 开发需要 JDK 1.8+、Node.js、Gradle、Python 和 R。我们使用 Gradle wrapper(称为 gradlew)来确保在您的开发目录中安装了最新版本的 Gradle 和其他依赖项。
构建 h2o 需要一个正确设置的 R 环境(包含必需的包)和一个包含以下包的 Python 环境:
grip
tabulate
requests
wheel
要安装这些包,您可以使用 pip 或 conda。
如果在 Windows 上安装这些包遇到问题,请遵循本指南的 Windows 设置 部分。
(注意:建议使用诸如 VirtualEnv 之类的虚拟环境来安装所有包。)
要从仓库构建 H2O,请执行以下步骤。
# 构建 H2O
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew build -x test
您可能会遇到问题:例如 npm 缺失。安装它:
brew install npm
# 启动 H2O
java -jar build/h2o.jar
# 将浏览器指向 http://localhost:54321
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build
注意:
- 运行测试会启动五个测试 JVM 以形成一个 H2O 集群,需要至少 8GB RAM(最好 16GB RAM)。
- 运行
./gradlew syncRPackages在 Windows、OS X 和 Linux 上受支持,强烈推荐但非必需。./gradlew syncRPackages确保一个完整且一致的环境,包含测试和构建所需的预批准版本的包。这些包可以手动安装,但我们建议设置一个 ENV 变量并使用./gradlew syncRPackages。要设置 ENV 变量,请使用以下格式(其中${WORKSPACE}可以是任何路径):
mkdir -p ${WORKSPACE}/Rlibrary export R_LIBS_USER=${WORKSPACE}/Rlibrary
git pull
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew clean
./gradlew build
git pull 后使用 ./gradlew clean。-x test 来跳过测试。测试通常在配备 4 个 CPU(8 个超线程)和 16 GB RAM 的 MacBook Pro 笔记本电脑上运行 7-10 分钟。./gradlew syncSmalldata 作为故障排除步骤。同步 smalldata 会将数据文件从 AWS S3 下载到您工作区的 smalldata 目录。同步是增量的。请勿提交这些文件。smalldata 目录在 .gitignore 中。如果您不运行任何测试,则不需要 smalldata 目录。./gradlew syncRPackages 在 Windows、OS X 和 Linux 上受支持,强烈推荐但非必需。./gradlew syncRPackages 确保一个完整且一致的环境,包含测试和构建所需的预批准版本的包。这些包可以手动安装,但我们建议设置一个 ENV 变量并使用 ./gradlew syncRPackages。要设置 ENV 变量,请使用以下格式(其中 ${WORKSPACE} 可以是任何路径):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
Git 仓库的根目录包含一个 Makefile,其中提供了开发中常用构建目标的便捷快捷方式。
要构建 h2o.jar 同时跳过测试和替代组件的构建,请执行:
make
要使用最小化组件构建 h2o.jar,请运行:
make minimal
最小化组件非常适合开发 H2O 机器学习算法。它不捆绑一些重量级依赖项(如 Hadoop),使用它可以节省构建时间以及从 Maven 仓库下载大型库的需求。
从命令行,通过使用 which python(或 sudo which python)验证 python 是否正在使用新安装的包。使用 WinPython 路径更新环境变量。
pip install grip tabulate wheel
安装 Java 1.8+,并将包含 java.exe 的相应目录 C:\Program Files\Java\jdk1.7.0_65\bin 添加到环境变量的 PATH 中。为确保命令提示符检测到正确的 Java 版本,请运行:
javac -version
CLASSPATH 变量也需要设置为 JDK 的 lib 子文件夹:
CLASSPATH=/<path>/<to>/<jdk>/lib
安装 Node.js,并将安装目录 C:\Program Files\nodejs(必须包含 node.exe 和 npm.cmd)添加到 PATH 中(如果尚未前置)。
安装 R,并将 bin 目录添加到您的 PATH 中(如果尚未包含)。
要在 R 会话中安装这些包:
pkgs <- c("RCurl", "jsonlite", "statmod", "devtools", "roxygen2", "testthat")
for (pkg in pkgs) {
if (! (pkg %in% rownames(installed.packages()))) install.packages(pkg)
}
注意,安装 RCurl R 包需要 libcurl。
注意,这些包不涵盖运行测试,仅用于构建 H2O。
最后,安装 Rtools,这是一个命令行工具集合,用于促进 Windows 上的 R 开发。
注意:在 Rtools 安装过程中,