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

时间:2018-01-02 07:33:40

标签: python random-forest h2o

当我在训练有素的模型上使用predict方法时,我得到的输出是1行和206列。它似乎有206个值,范围从0到1。这种情况很有意义,因为模型的输出是分类变量,值0和1是可能的值。但我没有得到206值,因为据我所知,输出应该是0或1的值.206值是什么意思?

我花了大约一个小时左右浏览h2o文档,但似乎无法找到解释如何解释在我预期一个值为0或1时预测输出的206个值。

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

(老答案,假设它是206行,1列!)

如果预测为您提供单列输出,则表示您已完成回归,而不是分类。

  

这种情况很有意义,因为模型的输出是分类变量,值0和1是可能的值。

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

E.g。如果data是您的H2O框架,并且answer是您的列的名称,其中包含0和1个catgeories,您可以执行以下操作:

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

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

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

您还可以在import the data with the col_types argument时设置列类型。