各行业中的人工智能技能已经逐渐落地,为了社会和经济的稳定发展,遍及人工智能越来越主要。
H2O是一个开源分布式内存机器学习平台。关于H2O的研究和实验,本文作者已经有丰富的履历,并且创造它在办理ML问题上具有非常直不雅观的效果。以是,本文的目的是为了让人们理解在排行榜排名出色但并不为人所熟习的H2O。
H2O.AI:H2O背后的公司
H2O.AI位于加利福尼亚州的山景城,能够供应关于机器学习的平台。 H2O的核心上风在于其紧密集成的高性能ML组件。 在2019年1月发布的报告中,H2O.AI是Gartner数据科学平台中最具前景的公司之一。
来源: Gartner ( 2019年1月)
让我们大略先容一下H2O.AI的产品:
H2O.AI的产品和解决方案
H2O
H2O是一个开源的分布式内存机器学习平台,具有线性可扩展性。 H2O支持最广泛利用的统计和机器学习算法,并且还具有AutoML功能。 H2O的核心代码是由Java编写的,它的REST API许可从外部程序或脚本访问H2O的所有功能。 该平台包括用于R、Python、Scala、Java、JSON和CoffeeScript / JavaScript的接口,以及内置的Web界面。
H2O Sparkling Water
Sparkling Water许可用户将快速、可扩展的H2O机器学习算法与Spark的功能相结合。 Sparkling Water非常适宜须要管理大型集群以知足其数据处理需求并希望将数据从Spark传输到H2O(或反向传输数据)的用户。
H2O4GPU
H2O4GPU是一个开源的GPU加速机器学习包,包含Python和R中的API,许可任何人利用GPU构建高等机器学习模型。
H2O无人驾驶AI
无人驾驶AI的用户界面
H2O无人驾驶AI是H2O.ai自动机器学习的旗舰产品。 它可以完备自动化运用数据科学中一些最具寻衅性和最高效的任务,如特色工程、模型调度、模型集成和模型支配。借助无人驾驶人工智能,所有闇练程度的数据科学家只需点击几下GUI即可演习和支配建模管道。 无人驾驶AI是一种商业容许产品,具有21天免费试用版。
什么是H2O
H2O-3是H2O最新版本。 H2O利用用户熟习的界面如R、Python、Scala、Java、JSON和Flow notebook/ Web界面,并与Hadoop和Spark等大数据技能无缝协作。 H2O可以通过更快,更好的预测建模,轻松快速地从数据中获取洞察力。
高等架构
H2O可以从多个源导入数据,并且具有Java的快速、可扩展和分布式打算引擎。 以下是该平台的高等概述。
H2O的高等架构
支持的算法
H2O支持许多常用的机器学习算法。
Algorithms supported by H2O
安装
H2O供应了一个可以从CRAN安装的R包和一个可以从PyPI安装的python包。 在本文中只利用Python安装包。
先决条件
Python
本步骤须要Java 7或更高版本。 要构建H2O或运行H2O测试,须要64位JDK。 要利用命令行,R或Python包运行H2O二进制文件,只须要64位JRE。
依赖性:
pip安装
Conda
把稳:在OS X El Capitan中从pip安装H2O时,用户必须包含—user标志。例如,
测试安装
每个新的python会话都是从初始化python客户端和H2O集群之间的连接开始的。 集群是一组协同事情的H2O节点; 将作业提交到群集时,群集中的所有节点都会处理作业的一部分。
要检讨统统是否到位,请打开Jupyter条记本并输入以下内容:
这是一个本地H2O集群。 在实行单元格时,一些信息将以表格格式打印在屏幕上,个中包括节点数、总内存、Python版本等等。如果您须要报告缺点,请确保包含以上所有信息。 此外,h2o.init()要确保没有先前的H2O实例正在运行。
Running h2o.init() (in Python)
默认情形下,H2O实例利用所有核心和系统内存的大约25%。 但是,如果您希望为其分配一块固定的内存,可以在init函数中指定它。 假设我们想给H2O实例供应4GB内存,它该当只利用2个内核。
#Allocate resources
h2o.init(nthreads=2,max_mem_size=4)
现在我们的H2O实例仅利用2个内核和大约4GB的内存。 但是,我们还是要利用默认方法。
在Python中利用H2O导入数据
安装成功后,我们就可以连续处理真实数据集了。我们将利用著名的wine数据集处理一个问题:在给定一组特色作为输入的情形下,以0-10的等级预测白葡萄酒的质量。
数据
该数据属于葡萄牙“Vinho Verde”葡萄酒的白色变种。
来源:
https://archive.ics.uci.edu/ml/datasets/Wine+Quality
CSV文件:
(https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)。
数据导入
从本地CSV文件导入数据。 该命令与pandas.read_csv非常相似,数据作为H2OFrame存储在内存中。
Displaying the first 5 rows of the dataset
EDA
让我们连续研究数据集以得到一些结果。
数据集的一些列
这里的所有特性都是用数字展现的,没有任何分类变量。现在让我们来看看各个特色的干系性。
用H2O建模
我们将建立一个回归模型来预测葡萄酒的质量。 H2O模块中有许多算法可用于分类和回归问题。
将数据拆分为测试和演习集
由于我们只有一个数据集,因此我们将其分为演习和测试部分,以便我们可以评估模型的性能。这一步可以利用split_frame()函数。
定义预测变量
广义线性模型
我们将利用默认设置构建广义线性模型(GLM)。 广义线性模型(GLM)预测结果服从指数分布的回归模型。 除了高斯(即正常)分布之外,还包括泊疏松布、二项分布和伽马分布。
GLM模型在演习集上的参数
现在,让我们检讨模型在测试数据集上的性能。
做预测
利用GLM模型对测试数据集进行预测。
同样,您可以利用其他监督算法,如分布式随机森林、梯度增强机器乃至深度学习,您还可以调度超参数。
H2OAutoML:自动机器学习
自动机器学习(AutoML)是将机器学习运用于现实问题的端到端流程自动化的过程。 AutoML使真正意义上的机器学习成为可能,纵然对付在该领域没有专业知识的人能运用。 H2O的AutoML方向于自动化模型的演习和调度部分。
H2O AutoML:可用的Algos
在本节中,我们将利用H2O的自动功能来处理预测葡萄酒质量的相同回归问题。
导入AutoML模块
这里AutoML将运行10个基本模型,持续100秒。默认运行韶光为1小时。
演习
排行榜
现在让我们看看自动排名榜。
AutoML 排行榜
排行榜显示的是由AutoML构建的前10个模型及其参数。 最好的模型是Stacked Ensemble。
将最好的模型存储为aml.leader。
单个模型的贡献
让我们看看单个模型的贡献。
XRT(极度随机树)具有最大贡献,其次是分布式随机森林。
预测
关闭
利用Flow - H2O的Web UI
末了,让我们快速概述一下名为Flow的H2O开源Web UI。 FLow是一个基于Web的交互式打算环境,您可以将代码实行、文本、数学、绘图和富媒体组合到单个文档中,就像Jupyter条记本一样。
启动FLOW
Launching H2O flow
一旦H2O启动并运行,您须要做的便是将浏览器转到http:// localhost:54321,然后您将看到名为Flow的用户界面。
Flow界面
以下是Flow界面的快速浏览。
H2O的Flow界面
Flow旨在帮助数据科学家快速轻松地创建模型、导入文件、拆分数据框、并完成须要大量人工操作的事情。
运行
让我们通过我们相同的葡萄酒示例,但这次利用Flow。
结论
H2O是功能强大的工具,它可以真正改变数据科学过程。 AI的功能和上风该当供应给每个人,而不是少数人。 这是机器学习大众化的真正实质,数据科学对付办理现实社会的真实威胁来说至关主要。
编译出品