尝试 H2o 做机器学习
我最初计划使用 R 来训练我的数据库，但老师建议我使用一个 FOSS 机器学习框架 H2o。
机器学习 ML
我最初计划使用 R 来训练我的数据库，但老师建议我使用一个 FOSS 机器学习框架 H2o。
![H2o Flow gradient boosting job](/data/attachment/album/201804/07/234425qjadmtvv9o7qacvd.png "H2o Flow gradient boosting job")


我目前正在参加一个机器学习班，虽然工作量很疯狂，但我非常喜欢。我最初计划使用 [R](https://en.wikipedia.org/wiki/R_(programming_language)) 来训练我的数据库，但老师建议我使用一个 FOSS 机器学习框架 [H2o](https://www.h2o.ai)。


起初我有点怀疑，因为我已经对 R 掌握得不错了，但后来我发现你可以简单地将 H2o 作为 R 库导入。H2o 将大多数 R 函数替换为其自己的并行化函数，以减少处理时间（不再需要 `doParallel` 调用），并且使用“外部”服务端来运行，而不是直接调用 R。


![H2o Flow gradient boosting model](/data/attachment/album/201804/07/234426skv3kwpwrjy50hjr.png "H2o Flow gradient boosting model")


直到我真正在实际中开始在 H2o 中使用 R 时，我对这种情况都非常满意。我在使用非常大的数据库时，库变得笨重，我几乎不能做任何有用得事情。大多数时候，我最后只是得到一个很长的 Java 回溯调用。


我相信正确地将 H2o 作为一个库使用将非常强大，但可惜的是，它似乎在我的 R 技能中无效。


![H2o Flow variable importance weights](/data/attachment/album/201804/07/234426lmf4erfcmbd64mr1.png "H2o Flow variable importance weights")


我生了一整天的气 —— 无法实现我想做的事 —— 直到我意识到 H2o 有一个名为 Flow 的 WebUI。我通常不喜欢使用 web 来完成重要的工作，比如编写代码，但是 Flow 简直太不可思议了。


自动绘图功能，运行资源密集模型时集成 ETA（预计剩余时间），每个模型参数的描述（这些参数甚至会根据您熟悉的统计模型分成不同部分），Flow 似乎拥有所有功能。我很快就能够运行 3 种基本的机器学习模型并获得实际可解释的结果。


所以，如果你一直渴望使用最先进的机器学习模型分析非常大的数据库，我会推荐使用 H2o。首先尝试使用 Flow，而不是 Python 或 R 的钩子，来看看它能做什么。


唯一缺点是，H2o 是用 Java 编写的，并依赖 Java 1.7 来运行。并且需要警告的是：它需要非常强大的处理器和大量的内存。即使有 10 个可用的内核和 10Gb 的 RAM，我可怜的服务器也苦苦挣扎了一段时间。




---


via: <https://veronneau.org/playing-with-water.html>


作者：[Louis-Philippe Véronneau](https://veronneau.org/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

