【问题标题】:How to interpret the output of H2O .predict method for random forest classification?如何解释随机森林分类的​​ H2O .predict 方法的输出?
【发布时间】:2018-06-11 22:28:48
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 请提供一些上下文。你在什么上使用predict?单个样本?测试集?如果是第二个,它包含多少个样本?

标签: python random-forest h2o


【解决方案1】:

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

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


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

如果 predict 为您提供单列输出,则表示您进行了回归,而不是分类。

因为模型的输出是分类变量,值 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()

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

【讨论】:

  • 感谢您非常详细的回复!我实际上已经进行了分类并将输出列设置为枚举。考虑到您提供的上下文,这是有道理的,因为我的输出实际上有多个列。我想我的问题是我不知道如何解释这些列。我只在 ONE 行上运行 predict 方法,所以我不确定如何解释 predict 输出中的 206 列。
  • @majorcoder 啊哈!抱歉,我在您的问题中错过了“1 行”。我已经更新了我的答案。
猜你喜欢
  • 2013-02-06
  • 2015-12-11
  • 2021-09-03
  • 2015-12-11
  • 1970-01-01
  • 2017-05-22
  • 2016-04-02
  • 2017-12-04
  • 2012-12-21
相关资源
最近更新 更多