我找到了 this thread from 2014答案表明不,sklearn 随机森林分类器无法处理分类变量(或至少不能直接处理)。答案在 2020 年有变化吗?
我要喂gender
作为我模型的一个功能。然而,gender
可以取三个值:M
, F
的 np.nan
.如果我将此列编码为三个二分列,随机森林分类器如何知道这三列代表单个特征?
想象 max_features
= 7.当训练给定的树时,它会随机随机选取七个特征。假设 gender
被选中。如 gender
被分成三列( gender_M
、 gender_F
、 gender_NA
),随机森林分类器是否总是选择所有三列并将其视为一个特征,还是有可能只选择一两个?
最佳答案
如 max_features
设置为低于实际列数的值(这是可取的方法,请参阅 docs 中 max_features
的推荐值),然后是的,对于随机森林中的给定估计量,有可能只考虑虚拟列的一个子集。
但这不一定太糟糕。在决策树中,选择一个特征作为给定级别的节点,旨在优化某些度量,独立于其他特征,即只考虑实际特征和目标。因此,从某种意义上说,模型不会将这些虚拟列视为属于同一特征。
不过,一般而言,二进制特征的最佳方法是提出一种适当的方法来填充缺失值,并将其转换为编码为 0
的单列。 s 和 1
s。
关于python - sklearn 随机森林分类器可以处理分类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61528588/