我最近一直在使用随机森林回归,效果非常好。我在网上读到可以使用随机森林分类器来处理分类数据,于是我搜索了一些相关的例子,但没有找到特别有用的内容。我看到了一些关于将分类数据通过独热编码转换为数值数据的文章,但据我所知,这对于随机森林方法来说并不是一个好主意。如果你确实可以使用随机森林技术来基于分类数据预测结果,请分享一些资源(链接、代码等)。我很想测试这个概念。只是我似乎找不到关于这个主题的好教程。我在Python环境中工作。谢谢。
回答:
对于回归和二元分类,决策树(因此包括RF)的实现应该能够处理分类数据。这一概念在CART(1984)的原始论文中提出,指出可以通过考虑类别在平均响应上的顺序来找到最佳分割,然后按此处理。你可以在这里找到问题的解释 这里
对于多类分类,问题会稍微复杂一些。
无论如何,这种方法可能会导致一些过拟合,因为你实际上是在使用一些目标编码(对于RF来说应该不是太大的问题,可能对于提升机来说更是一个问题)。然而,许多实现并不允许自动对分类变量进行分割,因此了解在树中编码的最佳方法是有益的。我建议阅读 这篇 Medium文章和 这篇 博客文章。
最后,一些实现对分类数据的处理方式不同但同样有效。我建议查看 H2O的实现,它使用了一种快速分割的优雅分箱方法。