我正在从事具有连续和分类特征的二元分类项目。我知道 RandomForest 的 R 实现可以处理作为因子类型数据传入的分类数据。然而,Python 的 scikit-learn 实现需要对分类数据进行编码(例如 one-hot)。我很好奇我使用这两种实现收到的结果的差异,我想知道是否有人知道 RandomForest 的 python 实现可以在不编码的情况下处理分类数据。
是否有一个 RandomForest 实现可以处理分类数据而无需在 python 中编码?
数据挖掘
Python
r
随机森林
分类数据
编码
2022-02-21 06:35:06
2个回答
因为 sklearn 使用 CART 算法,所以它不能按原样接受分类数据(正如您所指出的)。有一张现有的票可以改变这一点。
这个问题真的应该改写为支持决策树上的分类分裂 - 而不是随机森林,因为随机森林只是使用这些决策树作为拟合器的集成方法。
我不知道支持此功能的 python 包,但我确实怀疑它有助于提高性能,因为它可以避免在热编码数据上使用随机森林的常见陷阱;请参阅One-Hot Encoding 使您的基于树的集成变得更糟,这就是为什么?
同时 -当我知道我需要使用 Random Forrest 时,我会使用TargetEncoder 。它允许以“智能”方式对分类数据进行编码,而无需使用 one-hot 编码。