这是我的情况。我有 400 多个功能,其中许多可能没有用,而且通常为零。我希望能够:
- 使用这些特征的子集训练模型
- 查询该模型以获取实际用于构建该模型的特征
- 构建一个只包含这些特征的 H2OFrame(我为我想要预测的每一行得到一个非零值的稀疏列表。)
- 将这个新构建的框架传递给 H2OModel.predict() 以获得预测
我很确定找到的内容不受支持但目前有效 (v 3.13.0.341)。是否有更强大/受支持的方式来执行此操作?
model._model_json['output']['names']
响应变量似乎是此列表中的最后一项。
以类似的方式,最好有一种支持的方法来找出模型是在哪个 H2O 版本 下构建的。我在 json 中找不到版本号。
最佳答案
建好模型后,如果想知道模型使用了哪些特征列,可以在python中执行以下操作:
my_training_frame = your_model.actual_params['training_frame']
这将返回一些帧 id
然后你可以做
col_used = h2o.get_frame(my_training_frame)
col_used
已编辑(发表评论后)
要获取列,请使用:
col_used.columns
此外,检查已保存二进制模型版本的一种快速方法是尝试将其加载到 h2o 中,如果它加载的是与 h2o 相同的版本,否则您将收到警告。
您也可以打开保存的模型文件,第一行会列出创建它所用的H2O版本。
对于保存为 mojo 的模型,您可以查看 model.ini
文件。它将列出 H2O 的版本。
关于h2o - 是否有受支持的方法来获取 H2O 模型在训练期间使用的功能列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153176/