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

如何从H2OAutoMLClassifier sklearn wrapper提取H2OAutoML对象并调用explain()

解决方案

要从H2OAutoMLClassifier wrapper中提取底层的H2OAutoML对象并调用explain()方法,只需通过wrapper的automl_属性获取即可,具体步骤如下:

1. 提取H2OAutoML对象

在pipeline完成拟合后,先从pipeline中获取H2OAutoMLClassifier实例,再通过其automl_属性拿到底层的H2OAutoML对象:

# 从pipeline中获取H2OAutoMLClassifier组件
h2o_automl_classifier = pipeline.named_steps['classifier']

# 提取底层的H2OAutoML核心对象
automl_instance = h2o_automl_classifier.automl_

2. 调用explain()获取洞察

拿到automl_instance后,直接调用explain()方法即可生成模型和特征的全局洞察;如果需要针对测试集生成针对性分析,需先将预处理后的测试数据转换为H2OFrame格式:

全局模型洞察

# 生成全局模型解释(包含特征重要性、模型性能等)
automl_instance.explain()

针对测试集的洞察

import h2o

# 确保H2O集群处于运行状态(若未初始化会自动启动)
h2o.init()

# 对测试数据执行与训练集一致的预处理步骤
X_test_processed = pipeline.named_steps['featselect'].transform(
    pipeline.named_steps['polyfeat'].transform(X_classes_test)
)

# 将预处理后的测试数据转为H2OFrame,并匹配训练时的特征列名
X_test_h2o = h2o.H2OFrame(X_test_processed, column_names=h2o_automl_classifier.feature_names_in_)
y_test_h2o = h2o.H2OFrame(y_classes_test, column_names=['target'])
test_data_h2o = X_test_h2o.cbind(y_test_h2o)

# 生成测试集的模型解释
automl_instance.explain(test_data_h2o)

关键说明

  • H2OAutoMLClassifier作为sklearn兼容的wrapper,遵循sklearn命名惯例:拟合后生成的内部对象会以_结尾命名,因此automl_就是底层的H2OAutoML核心实例。
  • 调用explain()时,若传入测试集,必须保证测试数据经过与训练集完全一致的预处理(即pipeline中classifier之前的所有步骤),否则特征不匹配会导致解释失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:15:38