【问题标题】:Process categorical features when building decision tree models在构建决策树模型时处理分类特征
【发布时间】:2017-11-09 13:46:48
【问题描述】:

我使用 H2O 来构建 GBM、DRF 和 DL 等分类模型。 我拥有的数据集包含一些分类列,如果我想将它们用作构建模型的特征,是否需要手动将它们转换为虚拟变量?我读到 GBM 可以在内部对分类变量进行虚拟化?

【问题讨论】:

    标签: random-forest categorical-data h2o gbm


    【解决方案1】:

    是的,H2O 是少数不需要用户对分类变量进行预处理或一次性编码(又名“虚拟编码”)的机器学习库之一。只要数据框中的列类型是“因子”(又名“枚举”),那么 H2O 就会自动知道要做什么。

    特别是,H2O 允许在随机森林或 GBM 等基于树的方法中直接使用分类变量。基于树的算法能够本地使用分类数据,通常这会导致比单热编码更好的性能。在 GLM 或深度学习中,H2O 将在后台自动对分类进行一次热编码——无论哪种方式,您都不需要进行任何预处理。如果您想要更多控制,可以使用categorical_encoding 参数控制自动编码的类型。

    【讨论】:

      【解决方案2】:

      恕我直言,能够直接在树算法中处理分类变量是 H2O 的巨大优势。

      如果你对一个分类变量进行 one-hot 编码,你实际上是取了一个变量并将它们分成几个值主要为 0 的变量(例如稀疏)。正如 Erin 所说,这会使 Trees 的表现更差。这是因为树在每次拆分时都使用“信息增益”。稀疏特征(来自 one-hot 编码)的信息增益较少,因此不如分类特征有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-15
        • 2016-07-29
        • 2021-04-22
        • 2017-07-11
        • 2017-12-11
        • 2022-01-22
        • 2018-09-07
        • 2018-01-15
        相关资源
        最近更新 更多