AutoML-H2O

一、 环境依赖

1.安装java环境

mac :

brew install java 

sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc

java 8,11 比较稳定,支持安装,19以及新版本目前不支持

在这里插入图片描述

2.h2o 安装

源码安装:

需要注意的是java已经安装正常且启动无异常

git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
/gradlew syncSmalldata

h2o flow 服务安装

https://docs.h2o.ai/h2o/latest-stable/h2o-docs/flow.html#using-flow 

3.下载并启动flow服务

https://h2o-release.s3.amazonaws.com/h2o/rel-zz_kurka/2/index.html 

cd ~/Downloads
unzip h2o-3.38.0.2.zip
cd h2o-3.38.0.2
java -jar h2o.jar

java 服务启动成功

在这里插入图片描述

二、 H2O flow

适用于数据分析师,用户可以进行面板操作,不需要任何代码基础,就可以训练模型,选择最优的算法,参数及模型

上传数据集,可以对数据进行切分,缺失值处理。

在这里插入图片描述

训练模型,可以单个指定模型,也可以使用AutoML训练
在这里插入图片描述

定义数据集及标签
在这里插入图片描述

可选择的AutoMl 的模型
在这里插入图片描述

默认训练时间一个小时比较久,设置时间上限
在这里插入图片描述

训练结果,不同参数,不同算法模型评估

在这里插入图片描述

可将某个单一模型下载导出,模型结果以jar文件格式存储,还需要继续用h2o软件进行导入才能预测
在这里插入图片描述

三、H2o 代码示例

python 接口文档

https://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/intro.html

单个模型训练

from h2o.tree import H2OTree
from h2o.estimators import H2OGradientBoostingEstimator
airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv")
gbm = H2OGradientBoostingEstimator(ntrees=1)
gbm.train(x=["Origin", "Dest"],
          y="IsDepDelayed",
          training_frame=airlines)
# Obtaining a tree is a matter of a single call
tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO")
tree.model_id
tree.tree_number
tree.tree_class



automl python 代码示例

from h2o.automl import H2OAutoML
import h2o
import pandas as pd

h2o.init()


# pandas导入方式
train = pd.read_csv('/Users/tianjian/Projects/python-BasicUsage/算法/data/my_data_guest.csv')
test = pd.read_csv('/Users/tianjian/Projects/python-BasicUsage/算法/data/my_data_guest.csv')
hf = h2o.H2OFrame(train)
test_hf = h2o.H2OFrame(test)

hf.head()

# 选择预测变量和目标
hf['bad'] = hf['bad'].asfactor()
predictors = hf.drop('bad').columns
response = 'bad'

# 切分数据集,添加停止条件参数为最大模型数和最大时间,然后训练
train_hf, valid_hf = hf.split_frame(ratios=[.8], seed=1234)
aml = H2OAutoML(
    max_models=20,
    max_runtime_secs=300,
    seed=1234,
)

aml.train(x=predictors,
          y=response,
          training_frame=hf,
          )

连接集群服务,并开始自动化训练

在这里插入图片描述

H2O Flow也会记录训练job,可以查看数据集,训练的模型及效果

在这里插入图片描述

四、结论

优点

  1. 支持大数据量训练,spark,hadoop 有稳定的接口支持

  2. h2o flow 提供集群训练服务,分布式节点训练模式

  3. 适合数据分析师,通过页面点击可以完成建模并调参,自动化训练

缺点

  1. 环境依赖java,和spark,hadoop 紧耦合,需要flow集群服务监控调度

  2. 算法和用法比较固定,现有框架集成的算法,无法扩展

  3. 整体框架比较重,集成实用性不高

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值