轻松玩转自动机器学习AutoML:H2O Flow

网友投稿 426 2022-09-06


轻松玩转自动机器学习AutoML:H2O Flow

想想我们每次创建机器学习模型时,编写多行代码是不是很累!虽然这里给大家总结了一个建立机器学习模型的万能模版,但还是累啊!

H2O Flow 简介

AutoML(自动化机器学习)是自动化了建模过程,这使数据科学家能够专注于机器学习管道的其他关键方面,例如特征工程和模型部署。

H2O flow安装

从官方页面H2O Download page[1]下载最新版本的软件。首先需要确保服务器自带了Java环境,因为H2O 的底层就是Java。

在有Java环境下,直接在上面的下载链接中,找到最新的h2o flow安装包,上述5个服务,除了Driverless AI其它皆开源,然后我们将其scp到服务器上,解压然后直接用命令启动就行了:

unzip h2o-3.34.0.7.zipcd h2o-3.34.0.7/java -jar h2o.jar

如果没有问题,它最后的日志里会提供一个地址,flow页面,没有密码验证

在浏览器页面显示如下图所示。首先你可能会想到 Flow 的设计方式与 Jupyter 笔记本非常相似。右侧面板是帮助部分,对初学者来说很有见地。

上面的Assistance分别为:

importFiles(读取数据集)importSqlTables(读取SQL表)getFrames(查看已经读取的数据集)SplitFrame(将一个数据集分成多份数据集)mergeFrame(将两个数据集进行列组合或行组合)getModels(查看所有训练好的模型)getGrids(查看网格搜索的结果)getPredicitons(查看模型预测结果)getJobs(查看目前模型训练的任务)runAutoML(自动建模)buildModel(手动建立模型)importModel(从本地读取模型)predict(使用模型进行预测)

他们的步骤和正常的建模过程一样,有一定前置顺序,比如说如果没有相应的数据集,直接点最后的predict是没办法找到相关记录与模型进行的,它的下拉列表里没有任何可选择model与dataset,所以要玩好这个web,确实是需要下一番力气去学习,这里我引出官方更为详细的README[2],是一个可查阅的手册。

数据加载

我们将使用免费提供的数据集[3]。这些数据涉及银行的直接营销活动,基于多个特征,我们需要预测其客户的注册情况。

现在开始创建我们自己的 Flow notebook。注意顶部工具栏上的​​“+”​​按钮。我们可以使用它来插入单元格。就像 Jupyter notebook 一样,我们可以为想要编写的任何文本包含降价单元格。

单击导入文件选项并指定数据文件的位置并开始导入。我们还可以从 HDFS 和 S3 存储桶等其他来源导入文件。

在 H2O 流中导入数据有多种方式:

Flow_Import_AutoSuggest

在空白单元格中,选择CS格式,然后输入​​importFiles ["path/filename.format"]​​​(其中​​path/filename.format​​代表文件的完整文件路径,包括完整的文件名。文件路径可以是本地文件路径,也可以是网站地址。

数据解析

数据解析是指定义模式。解析猜测器会自动为我们检测模式。我们可以根据需要随意更改任何列。我们可以将分类数据类型更改为数值数据类型,在这里我们可以将“​​day​​​”列更改为 ​​enum​​,因为一周只有 7 天。

我们预测客户是否会注册定期存款,因此这是一个二元分类问题。

数据探索

探索和可视化数据中,可以选择用于单独可视化它们的列。可以获得数字列的分布或分类列的频率计数。

我们可以看到“​​age​​”列的特征和摘要以及频率分布。

这里可以看到“​​y​​”列的分布。通过可视化目标列,可以看出存在高度的类不平衡。

同样,我们也可以检查其他列。

Flow 提供了用于估算数据的功能。这在将通过缺失值进行拟合线性模型的情况下很有用。提供了许多用于插补的方法。默认方法设置为_mean_

拆分训练和测试集

在开始训练模型之前,我们需要将数据拆分为训练集和测试集。我们可以通过从工具栏导航到​​data -> split frame​​来实现这一点。

注意训练集和测试集的默认拆分时间分别为 75:25。这个可以根据需要修改。将拆分重命名为​​"training_set"​​​和​​"test_set"​​。

split

可以通过选择框架单独检查每个数据集

trainset

通过AutoML构建模型

AutoML 训练各种类型的模型,包括 GLM随机森林、分布式随机森林、极端随机森林、深度学习、 XGboost和 stack集成模型。它还提供了一个排行榜,其中所有模型都按一些指标排序。

AutoML

可以分别选择 ​​training_frame, response_frame​​​ 和 ​​validation_frame​​​作为 ​​"training_set"​​​、​​"y"​​​ 和 ​​"test_set"​​。我们可以忽略其他选项,因为它们用于添加高级功能。

Frame

交叉验证数默认为 5。由于我们有一个类不平衡的情况,我们可以选择平衡类选项。

如果我们知道某些模型不相关,我们也可以排除它们。将 ​​max_runtime_seconds​​​ 更改为 300 秒。AutoML 训练模型直到 ​​max_runtime_seconds​​ 之后它将停止。默认设置为 3600 秒。

max_runtime_seconds

最后,我们可以通过选择​​"build models"​​选项开始构建模型。有一个选项可以在训练时查看模型的实时更新。我们还可以通过图形表示实时查看评分历史。

build models

模型探索

由于我们指定了​​max_runtime_seconds​​,因此训练过程将需要五分钟。Job完成后,我们可以导航到模型排行榜。

AutoML 训练的所有模型都根据性能按排序顺序显示。这种情况下,XGboost模型是性能最好的模型。

排行榜

可视化

我们还可以检查变量的重要性。我们可以看到持续时间变量具有高度的预测性,并被该模型使用。

重要性

混淆矩阵提供了各种评价指标,例如相关性,因此也很重要。我们还可以突出显示特定变量并查看它们。

混淆矩阵

预测

在我们对所选模型感到满意后,我们可以继续进行预测。

首先从工具栏中选择预测选项,然后选择要使用的模型,然后选择验证框架。现在只需单击预测按钮,我们就可以查看预测值以及各种评估指标,例如均方误差。

我们可以看到混淆矩阵并分析我们的结果以及各种指标和图形表示。

到这里,我们便成功学会了简单使用 基于 Web 的 UI 的 H2O Flow 中H2O,并且无需编写任何代码即可训练和可视化模型!通过本文的学习,简单了解和使用 AutoML 将机器学习建模可能会比较容易。但如果你希望更加深入地研究 H2O Flow ,我建议研究下官方文档。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Gensim:一款进行文本主题识别的 Python 工具库(gensim 文本分类)
下一篇:Java异常类型介绍及处理方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~