【问题标题】:Random Forest Classifier for Categorical Data?分类数据的随机森林分类器?
【发布时间】:2020-04-27 13:09:35
【问题描述】:

我最近一直在使用随机森林回归,我得到了很棒的结果。我在网上读到你可以使用随机森林分类器来处理分类数据,我用谷歌搜索了一些例子,但我找不到任何非常有用的东西。我看到了几篇关于将分类数据一次性编码为数值数据的文章,但据我所知,这对于随机森林方法来说并不是一个好主意。如果您实际上可以使用随机森林技术根据分类数据预测结果,请分享一些资源(链接、代码等)。我很想测试这个概念。我似乎找不到关于这个主题的好教程。我在 Python 环境中工作。谢谢。

【问题讨论】:

  • 嘿 ASH,了解 CatBoost github.com/catboost/catboost,该算法可以很好地处理分类特征,并且它对具有分类数据的数据集的平均结果很好。
  • @FilipeLauar:RF 有效,XGboost 更好,CatBoost 可能更易于使用,但看起来很花哨,性能也没有任何改善——我从未见过任何表明 CatBoost 优于 RF 或 XGB 的东西。

标签: python python-3.x machine-learning random-forest


【解决方案1】:

对于回归和二元分类,决策树(以及 RF)实现应该能够处理分类数据。这个想法在 CART (1984) 的原始论文中提出,并表示可以通过考虑按照平均响应排序的类别来找到最佳拆分,然后将它们视为此类。你可以找到问题的解释here
对于多类分类,问题有点复杂。

无论如何,这种方法可能会导致一些过度拟合,因为您实际上正在使用一些目标编码(对于 RF 来说应该不是太大的问题,对于增强型机器来说可能更多)。但是,许多实现不允许对分类变量进行自动拆分,因此最好了解在树中进行编码的最佳方法。我建议this 中等文章和this 博客文章。

最后,一些实现以不同方式处理分类数据,但有效。我建议查看H2O's implementation,它使用了一种很好的分箱方法来快速拆分。

【讨论】:

    猜你喜欢
    • 2018-02-18
    • 2018-05-20
    • 2019-09-05
    • 2013-09-22
    • 2018-03-05
    • 1970-01-01
    • 2013-12-12
    • 2020-07-02
    • 2016-05-25
    相关资源
    最近更新 更多