如何解释随机森林分类的H2O.predict方法的输出?



当我在训练的模型上使用predict方法时,我得到的输出是 1 行和 206 列。 它似乎有 206 个值,值范围从 0-1。这是有道理的,因为模型的输出是分类变量,值 0 和 1 作为可能的值。但是我没有得到 206 个值,据我了解,输出应该是 0 或 1 的值。206 个值是什么意思?

在过去的一个小时左右的时间里,我浏览了 h2o 文档,但似乎找不到如何解释如何解释预测输出的 206 个值,而我期待一个值是 0 或 1。

谢谢。

在评论后更新: 第一列是模型选择的答案。其余 205 列是 205 个类别中每个类别的预测置信度。(这意味着您要预测的任何内容都是具有 205 个水平的因子(又名枚举)列。这 205 列的总和应为 1.0。

列名称应该是一个很好的线索:第一列是"预测",但其他列是 205 个类别中每个类别的标签。


(旧答案,基于假设它是 206 行,1 列!

如果预测为您提供了单列输出,那么您已经完成了回归,而不是分类。

这是有道理的,因为模型的输出是分类变量,值 0 和 1 作为可能的值。

H2O已经看到了这些0和1,并假设它们是数字,而不是类别。要进行分类,您只需将该列更改为枚举(H2O的内部术语),也就是因子(R/Python H2O API术语)。(在将数据加载到 H2O 后,以及在拆分数据或制作任何模型之前,请立即执行此步骤。

例如,如果data是您的 H2O 框架,并且answer是包含 0 和 1 类别的列的名称,您将执行以下操作:

data["answer"] = data["answer"].asfactor()

如果任何其他列看起来是数字,但实际上应被视为因子,则可以一次执行多个列,如下所示:

factorsList = ["cat1", "cat2", "answer"]
data[factorsList] = data[factorsList].asfactor()

您还可以在使用 col_types 参数导入数据时设置列类型。

最新更新