You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在H2O Frame中按多列分组并按团队运行AutoML模型?

按团队分组运行H2O AutoML的解决方案

一、解决H2OFrame丢失索引的问题

H2OFrame不支持pandas的多层索引结构,直接转换带索引的DataFrame会导致索引丢失。解决方法是先将pandas的索引还原为普通列:

# 修正原代码变量名错误(将l改为data)
df = pd.DataFrame(data, columns=['Dt','Co','Team','Val1','Val2','Type'])
# 把多层索引转回普通列,避免转H2OFrame时丢失
df = df.set_index(['Dt','Co']).reset_index()

转换为H2OFrame后,Dt和Co会以普通列的形式保留:

import h2o
h2o.init()

hf_train = h2o.H2OFrame(df)

二、按Team分组运行AutoML

通过遍历每个唯一的Team值,筛选对应数据分别训练模型,完整代码示例如下:

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

# 原始数据
data=[
['01/01/18','A','Team A',1.5,8.9,'Pop'],
['02/01/18','A','Team AA',1.5,8.9,'Pop'],
['03/01/18','A','Team AA',3.1,11,'Div'],
['04/01/18','A','Team AC',1.5,6,'Div'],
['01/01/18','A','Team A',1.5,8.9,'Pop'],
['02/01/18','A','Team BA',1.5,8.9,'Pop'],
['03/01/18','A','Team BA',3.1,11,'Div'],
['04/01/18','A','Team BC',1.5,6,'Div'],
['01/01/18','C','Team C',1.5,8.9,'Pop'],
['02/01/18','C','Team CA',1.5,8.9,'Pop'],
['03/01/18','C','Team CC',3.1,11,'Div'],
['04/01/18','C','Team CA',1.5,6,'Div']
]

# 处理DataFrame,还原索引为列
df = pd.DataFrame(data, columns=['Dt','Co','Team','Val1','Val2','Type'])
df = df.set_index(['Dt','Co']).reset_index()

# 初始化H2O环境
h2o.init()

# 转换为H2OFrame
hf_train = h2o.H2OFrame(df)

# 定义特征列和目标列(假设目标变量为Type)
y = 'Type'
x = hf_train.columns
x.remove(y)

# 存储各团队的最优模型
team_models = {}

# 获取所有唯一的团队名称
unique_teams = hf_train['Team'].unique().as_data_frame()['Team'].tolist()

# 遍历每个团队训练模型
for team in unique_teams:
    print(f"正在为团队 {team} 训练模型...")
    # 筛选当前团队的训练数据
    team_data = hf_train[hf_train['Team'] == team]
    # 启动AutoML训练
    aml = H2OAutoML(max_runtime_secs=600, seed=42)
    aml.train(x=x, y=y, training_frame=team_data)
    # 保存当前团队的最优模型
    team_models[team] = aml.leader
    print(f"团队 {team} 的最优模型训练完成\n")

# 后续可通过team_models['Team名称']调用对应模型

关键说明

  • 索引处理:H2OFrame不识别pandas索引,必须通过reset_index()将索引转为普通列才能保留字段。
  • 分组筛选:利用H2OFrame的布尔索引hf_train['Team'] == team快速筛选单团队数据。
  • 模型存储:用字典team_models统一存储各团队的最优模型,方便后续调用、评估或部署。

内容的提问来源于stack exchange,提问作者apprunner2186

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:24:55