H2O DRF看不见的分类值处理

时间:2018-10-24 09:22:07

标签: random-forest h2o

documentation for DRF状态

  

尝试在未分类的类别上进行预测时会发生什么   在训练期间?   DRF将新的分类级别转换为NA中的NA值   测试集,然后在评分过程中向左分裂NA值。的   算法在NA值上向左拆分,因为在训练过程中,NA值   在最左边的bin中与离群值分组。

问题:

  1. 因此,h2o将看不见的水平转换为NA,然后以与训练数据中的NA相同的方式对待它们。但是,如果训练数据中也没有NA怎么办?
  2. 假定我的分类预测变量为enum类型,应理解为非常规预测变量。那么“ 与离群值位于最左边的bin 中”是什么意思?如果预测变量为非常规变量,则不存在“ 最左端的”,也不存在“ 离群值”。
  3. 我们将问题1和2放在一边,重点放在“ 算法在NA值上向左拆分,因为在训练过程中,NA值 被与最左边的bin 中的离群值分组。这与SO answer展示了从MOJO派生的单个DRF树相反。人们可以清楚地看到NA左右移动。还与文档中另一个问题的答案相矛盾,该文档说“ 作为单独类别的缺失值可以左右移动”,请参见
  

算法在训练过程中如何处理缺失值?   值被解释为包含信息(例如,缺少   原因),而不是随机丢失。在造树期间,分裂   通过使损失函数最小化来找到每个节点的决策   将缺失值视为可以左移的单独类别   或正确。

最后一点是建议而不是问题。 documentation on missing values for GBM

  

尝试在未分类的类别上进行预测时会发生什么   在培训期间?看不见的分类级别变成了NA,并且   因此遵循与NA相同的行为。如果没有NA   训练数据,然后是测试数据中看不见的分类级别   多数方向(观察最多的方向)。如果   训练数据中有NA,然后是看不见的分类级别   测试数据遵循最适合NA的方向   训练数据。

与DRF如何处理缺失值的描述相反,这似乎是完全一致的。另外:使用多数路径而不是总是在拆分点处向左走更自然。

1 个答案:

答案 0 :(得分:1)

您所指出的句子似乎与文档的其他部分相矛盾,实际上已经过时了。我做了Jira Ticket,用正确的答案(这是您在GBM缺失值部分看到的内容,即GBM和DRF的缺失值处理方法相同)来更新常见问题解答。

请注意,枚举数据类型内部编码为数值,您可以在http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html处了解有关映射H2O类型的更多信息。例如,将字符串映射到Enum的整数后,可以将{0,1,2,3,4,5}拆分为{0,4,5}和{1,2,3}。

或者在这里查看h2o-3如何对分类进行分类:http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/gbm-faq/histograms_and_binning.html