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

如何无需保留冗余学习器,独立存储重载H2O AutoML的"best of family"模型?

如何独立存储、重载H2O AutoML的"Best of Family"模型

没问题,完全可以做到!你不需要保留那上千个价值较低的冗余模型,也不用额外保存堆叠集成的组件或聚合器,就能把"best of family"模型当作独立黑盒来使用。下面是具体的操作步骤:

一、先拿到"Best of Family"模型集合

当你的AutoML任务跑完后,有两种简单的方式获取每个算法家族里的最优模型:

  • 快捷方法:用内置函数直接提取
    H2O的AutoML对象自带get_best_models()方法,能直接帮你筛选出每个家族的最优模型,还能跳过堆叠模型(如果不需要的话):
    # 假设aml是你训练好的AutoML对象
    best_of_family = aml.get_best_models(n_per_family=1, skip_stack_models=True)
    
    这里n_per_family=1指定每个算法家族只拿最优的那个,skip_stack_models=True会排除堆叠集成类的模型,刚好符合你的需求。
  • 手动筛选:从排行榜里挑
    如果需要更灵活的筛选逻辑,也可以从AutoML的leaderboard里手动提取:
    leaderboard = aml.leaderboard
    model_ids = leaderboard['model_id'].as_data_frame()['model_id']
    best_models_dict = {}
    
    for model_id in model_ids:
        model = h2o.get_model(model_id)
        algo_family = model.algo
        # 只保留每个家族的第一个(也就是最优的那个,因为leaderboard是排序好的)
        if algo_family not in best_models_dict:
            best_models_dict[algo_family] = model
    
    best_of_family = list(best_models_dict.values())
    

二、独立保存这些模型

拿到目标模型后,直接逐个保存到磁盘就行——每个模型都是完整的独立黑盒,不需要依赖任何其他冗余模型:

# 遍历模型,保存到你指定的路径
for model in best_of_family:
    # 每个模型会被存成一个单独的目录,包含所有运行所需的文件
    model.save_model(f"/your/save/path/{model.model_id}")

三、重载并使用保存的模型

之后需要用的时候,直接用h2o.load_model()加载单个模型,就能像用普通H2O模型一样做预测,完全不需要AutoML的上下文:

# 加载单个模型
loaded_model = h2o.load_model("/your/save/path/your_model_directory")
# 用加载后的模型做预测
predictions = loaded_model.predict(your_test_data)

如果要同时用多个"best of family"模型,挨个加载就行,彼此之间没有任何依赖。

额外提醒

这些"best of family"模型本质上和你手动训练的单个H2O模型完全一样,所有必要的参数、元数据都存在自己的保存目录里,完全不需要保留AutoML运行时生成的其他冗余模型,节省大量磁盘空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:41:59