轻松玩转自动机器学习AutoML:H2O Flow
想想我们每次创建机器学习模型时,编写多行代码是不是很累!虽然这里给大家总结了一个建立机器学习模型的万能模版,但还是累啊!
有没有想过,如果我们可以通过鼠标点击来构建机器学习模型会变得多么容易和高效?H2O Flow 为所有此类问题提供了解决方案!
H2O Flow 简介
H2O是一个开源机器学习和人工智能平台。它支持名为 Flow 的基于 Web 的界面。H2O Flow可用于创建各种类型的机器学习模型,而无需编写任何代码。我们可以简单地点击来构建机器学习管道。它具有对 R、Python、Scala 的 API 支持。
AutoML(自动化机器学习)是自动化了建模过程,这使数据科学家能够专注于机器学习管道的其他关键方面,例如特征工程和模型部署。
H2O flow安装
从官方页面H2O Download page[1]下载最新版本的软件。首先需要确保服务器自带了Java环境,因为H2O 的底层就是Java。
在有Java环境下,直接在上面的下载链接中,找到最新的h2o flow安装包,上述5个服务,除了Driverless AI其它皆开源,然后我们将其scp到服务器上,解压然后直接用命令启动就行了:
unzip h2o-3.34.0.7.zip
cd h2o-3.34.0.7/
java -jar h2o.jar
如果没有问题,它最后的日志里会提供一个地址,http://localhost:54323,进入这个地址,就能直接进入h2o 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 流中导入数据有多种方式:
- 点击
Help
按钮在菜单下方的assist me
按钮行中,然后单击importFiles链接。在自动完成的搜索输入字段中输入文件路径,然后按Enter。从搜索结果中选择文件并单击“**全部添加”**链接进行确认。
Flow_Import_AutoSuggest
- 在空白单元格中,选择CS格式,然后输入
importFiles ["path/filename.format"]
(其中path/filename.format
代表文件的完整文件路径,包括完整的文件名。文件路径可以是本地文件路径,也可以是网站地址。
数据解析
数据解析是指定义模式。解析猜测器会自动为我们检测模式。我们可以根据需要随意更改任何列。我们可以将分类数据类型更改为数值数据类型,在这里我们可以将“day
”列更改为 enum
,因为一周只有 7 天。
我们预测客户是否会注册定期存款,因此这是一个二元分类问题。
通常在构建机器学习模型之前,对分类数据应用 one-hot 编码,但 Flow 为我们提供了自动 one-hot 编码功能。继续点击 Parse
,等解析完成后,我们可以查看细化后的数据,包括大小、列和行。
数据探索
探索和可视化数据中,可以选择用于单独可视化它们的列。可以获得数字列的分布或分类列的频率计数。
我们可以看到“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模型是性能最好的模型。
排行榜
AutoML 提供可用于模型探索的各种指标的可视化。我们可以点击曲线了解更多详情。
可视化
我们还可以检查变量的重要性。我们可以看到持续时间变量具有高度的预测性,并被该模型使用。
重要性
混淆矩阵提供了各种评价指标,例如相关性,因此也很重要。我们还可以突出显示特定变量并查看它们。
混淆矩阵
预测
在我们对所选模型感到满意后,我们可以继续进行预测。
首先从工具栏中选择预测选项,然后选择要使用的模型,然后选择验证框架。现在只需单击预测按钮,我们就可以查看预测值以及各种评估指标,例如均方误差。
我们可以看到混淆矩阵并分析我们的结果以及各种指标和图形表示。
到这里,我们便成功学会了简单使用 基于 Web 的 UI 的 H2O Flow 中H2O,并且无需编写任何代码即可训练和可视化模型!通过本文的学习,简单了解和使用 AutoML 将机器学习建模可能会比较容易。但如果你希望更加深入地研究 H2O Flow ,我建议研究下官方文档。
推荐文章
李宏毅《机器学习》国语课程(2022)来了
有人把吴恩达老师的机器学习和深度学习做成了中文版
上瘾了,最近又给公司撸了一个可视化大屏(附源码)
如此优雅,4款 Python 自动数据分析神器真香啊
梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学
年终汇总:20份可视化大屏模板,直接套用真香(文末附源码)
轻松玩转自动机器学习AutoML:H2O Flow相关推荐
- 自动机器学习AutoML
[研究背景]随着深度神经网络的不断发展,各种模型和新颖模块的不断发明利用,人们逐渐意识到开发一种新的神经网络结构越来越费时费力,为什么不让机器自己在不断的学习过程中创造出新的神经网络呢? 正是出于这个 ...
- 【机器学习】盘点常见的自动机器学习(AutoML)工具库
本文总结了常见的AutoML库,可供大家选择. LightAutoML 项目链接:https://github.com/sberbank-ai-lab/LightAutoML 推荐指数:⭐⭐⭐ Lig ...
- 开源自动机器学习(AutoML)框架盘点
开发十年,就只剩下这套Java开发体系了 >>> 自从Google推出了能自动设计神经网络自我进化的AutoML论文后,我便开始持续关注这个领域 到目前为止,从网上显示的信息来 ...
- 自动机器学习大师班:15个项目
Automated Machine Learning Masterclass: 15 (AutoML) Projects 使用自动ML解决数据科学问题,学会使用评估ML,Pycaret,Auto Ke ...
- c++test能不能导入keil工程_深度解析AutoML框架——H2O:小白也能使用的自动机器学习平台...
H2O是一个完全开源的.分布式的.具有线性可扩展性的内存的机器学习平台. 它具有以下特点: 支持R和Python 支持最广泛使用的统计和机器学习的算法,包括DRF,GBM,XGBoost,DL等 具有 ...
- 自动机器学习(AutoML)
自动机器学习(AutoML) 不再需要苦恼于学习各种机器学习的算法 目录: 一.为什么需要自动机器学习 二.超参数优化 Hyper-parameter Optimization 三.元学习 Meta ...
- 一文讲解自动机器学习(AutoML)!
Datawhale 作者:瞿晓阳,AutoML书籍作者 寄语:让计算机自己去学习和训练规则,是否能达到更好的效果呢?自动机器学习就是答案,也就是所谓"AI的AI",让AI去学习AI ...
- 【赠书】快速入门自动机器学习!自动机器学习(AutoML):方法、系统与挑战 图书赠送!...
周末了,这次给大家赠送3本机器学习好书,<自动机器学习(AutoML):方法.系统与挑战>,请看细节. 这是一本什么书 这是一本全面介绍自动机器学习的好书,主要包含自动机器学习的方法.实际 ...
- 文末送书 | 自动机器学习(AutoML):方法、系统与挑战
OPENNING 最新上架 近十年来,不管是机器学习相关的应用还是研究,都迎来了爆发式增长.尤其是深度学习,使得很多应用领域都取得了关键性突破,如计算机视觉.语音处理和游戏. 然而,多数机器学习方法的 ...
最新文章
- hive_0.11中文用户手册
- Linux服务器配置秘钥对连接
- linux mysql jdbc_linux下jdbc连Mysql异常 郁闷了一天!
- Quartz调用大全
- 期货品种产业链图表_农业
- Sberbank Russian Housing Market比赛总结
- 银联在线支付、第三方快捷支付三种快捷支付模式有何区别?
- 三极管的使用方法,放大,截止,饱和
- 中兴b860刷机运行Linux,全国各地中兴B860A刷机越狱全贴(2016年2月26日更新)
- matlab程序产生OAM波,一种反射型极化转换超表面的轨道角动量产生结构设计的制作方法...
- 计算机设备码的功能,多功能修改电脑机器码序列号工具
- PyTorch 使用 TensorBoard 中的 writer.add_scalar 与 writer.add_scalars 的区别
- 网易互联网产品策划专员笔试题
- asp.net mvc 实现判断用户是否登录的两种方式
- 数据结构(四)—— 图(1):什么是图
- linkkitapp log for debug
- ffmpeg录制桌面视频和系统内部声音(音视频同步)
- idea各种中文乱码问题
- 无障碍感受 北京之美
- VisionFive2 星光板,开发之旅-1
热门文章
- 蚂蚁区块链投票案例(二)---投票合约设计开发
- python3里复数的算法_Python高级复数算法
- matlab生成s加减速曲线,一种基于移动平均算法的S曲线加减速控制方法与流程
- 解9*9数独算法(C++)
- h5课件制作_一款专业的HTML5课件制作工具:炫课
- 悟透Javascript(转载)
- RHCE考试题及讲解(一)
- c语言修仙亲吻片段,《C语言修仙》by一十四洲,摘抄
- 跨境电商人要知道的知识产权侵权防范小知识
- Lineage OS15.1 for sagit 编译