【问题标题】:h2o DRF unseen categorical values handlingh2o DRF 看不见的分类值处理
【发布时间】:2019-03-28 15:44:26
【问题描述】:

documentation for DRF 状态

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

问题:

  1. 因此 h2o 将看不见的级别转换为 NA,然后以与训练数据中的 NA 相同的方式处理它们。但是,如果训练数据中也没有 NA 怎么办?
  2. 假设我的分类预测器是enum 类型并且被理解为非序数。那么“与最左边的 bin 中的异常值分组”是什么意思?如果预测变量是非序数,则没有“left-most”并且没有“outliers”。
  3. 让我们把问题 1 和 2 放在一边,专注于“The 算法在 NA 值上左拆分,因为在训练期间,NA 值 与最左边的 bin 中的异常值分组“。这与 SO answer 显示从 MOJO 派生的单个 DRF 树相矛盾。可以清楚地看到 NA 左右移动。它也矛盾文档中另一个问题的答案是“作为单独类别的缺失值 [...] 可以向左或向右”,请参阅

算法在训练过程中如何处理缺失值? 值被解释为包含信息(即,缺少 原因),而不是随机丢失。在树构建期间,拆分 通过最小化损失函数和 将缺失值视为一个单独的类别,可以向左移动 或对。

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

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

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

【问题讨论】:

    标签: random-forest h2o


    【解决方案1】:

    您指出的那句话似乎与文档的其他部分相矛盾,实际上已经过时了。我创建了Jira Ticket 以使用正确答案更新常见问题解答(这是您在 GBM 缺失值部分看到的 - 即缺失值处理对于 GBM 和 DRF 是相同的)。

    作为旁注,枚举数据类型在内部编码为数值,您可以在此处了解有关 H2O 可以使用的映射类型的更多信息:http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html。例如,将字符串映射为 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

    【讨论】:

    • 感谢您的快速澄清!
    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2019-01-03
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多