H2O AutoML 错误测试/验证数据集有一个非分类列,它在训练数据中是分类的“预测
Posted
技术标签:
【中文标题】H2O AutoML 错误测试/验证数据集有一个非分类列,它在训练数据中是分类的“预测【英文标题】:H2O AutoML error Test/Validation dataset has a non-categorical column which is categorical in the training data" on predict 【发布时间】:2019-12-22 18:25:49 【问题描述】:我已经训练并保存了我的 H2O AutoML 模型。重新加载后,当我使用预测方法时,出现以下错误: java.lang.IllegalArgumentException:测试/验证数据集有一个非分类列“响应”,它在训练数据中是分类的
我在创建模型时没有指定任何编码,但我现在收到此错误。谁能帮我解决这个问题。
我们将不胜感激。
【问题讨论】:
您能指定您使用的 H2O 版本吗?这看起来像是一个已修复的旧错误。 我使用的是 3.26.0.2 版本的 H2O。 我在 3.26.0.3 java.lang.IllegalArgumentException 上看到了类似的错误:测试/验证数据集有一个分类响应列“C30”,与模型没有共同的级别。如果您从“测试”集中删除 y 标签并传递给 model.predict() ,那么它可以工作。这种行为最近改变了吗?我试图通过这个差异:github.com/h2oai/h2o-3/compare/… 嗨 Atul 你能得到答案吗?我面临着类似的问题。 【参考方案1】:此问题与训练集中不存在的特定列中的新示例数据有关。 在这种情况下,我使用将列类型解析为数字(或字符串)。
def _convert_h2oframe_to_numeric(h2o_frame, training_columns):
for column in training_columns:
h2o_frame[column] = h2o_frame[column].asnumeric()
return h2o_frame
记得使用这个函数进行训练和预测过程。
【讨论】:
以上是关于H2O AutoML 错误测试/验证数据集有一个非分类列,它在训练数据中是分类的“预测的主要内容,如果未能解决你的问题,请参考以下文章
如何在 automl h2o python 中找到领导模型的最佳参数