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. 整体框架比较重,集成实用性不高

### H2O AutoML 使用教程 #### 启动 Jupyter Notebook 并导入必要的库 为了使用 H2O AutoML,在启动一个新的 Jupyter 笔记本之后,首先需要安装并加载 `h2o` 库。这可以通过运行以下 Python 代码来完成: ```python !pip install h2o import h2o from h2o.automl import H2OAutoML ``` #### 初始化 H2O 集群 初始化本地的 H2O 集群是必需的操作之一,以便能够执行后续的任务。 ```python h2o.init() ``` #### 加载数据集 接着,可以利用内置函数读取 CSV 文件或其他格式的数据源到内存中的 H2OFrame 对象里。 ```python data = h2o.import_file("path/to/dataset.csv") ``` #### 数据预处理 通常情况下还需要对原始数据做一些清洗工作,比如缺失值填充、类别编码转换等操作;这部分取决于具体应用场景的要求[^1]。 #### 设置训练参数 定义好目标列名以及划分训练/验证子集的比例后就可以准备调用自动化建模过程了。 ```python x = data.columns y = "target_column_name" train, valid = data.split_frame(ratios=[.8], seed=1) aml = H2OAutoML(max_runtime_secs=300, max_models=None, stopping_metric="AUTO", sort_metric="AUC") aml.train(x=x, y=y, training_frame=train, validation_frame=valid) ``` 上述配置指定了最大允许运行时间为 5 分钟 (`max_runtime_secs`) 和不设限的最大模型数量 (`max_models`). 此外还设置了停止标准(`stopping_metric`) 及最终排名依据(`sort_metric`)均为默认选项 `"AUTO"` 或者指定为其他评价指标如 AUC 等. #### 查看结果 当自动化的流程结束后,可以获得最佳单个模型及其性能评估报告: ```python lb = aml.leaderboard print(lb.head(rows=lb.nrows)) ``` 同时也可以获取集成学习器的信息,例如堆叠集合(Stacked Ensemble): ```python stacked_ensemble = h2o.get_model('StackedEnsemble_AllModels') performance = stacked_ensemble.model_performance(valid) print(performance.auc()) ``` 以上就是关于如何快速上手 H2O AutoML 的基本介绍.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值