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 训练模型时出现“内部”错误

轻松玩转自动机器学习AutoML:H2O Flow

如何在 automl h2o python 中找到领导模型的最佳参数

Google AutoML 对象检测数据拆分错误

R语言数据预处理把类型变量转化为因子变量,把数据集转化为h2o格式数据集划分(训练集测试集验证集)

使用 Automl - R 对许多模型进行 Glue 和 For