我发现了这条线从2014年开始,答案是否定的,sklearn随机森林分类器不能处理分类变量(或者至少不是直接处理)。答案在2020年改变了吗?
我想将gender作为我的模型的一个特性。然而,gender可以具有三个值:M、F of np.nan。如果我将这个列编码成三个二分列,随机森林分类器如何知道这三个列代表一个特性?
假设max_features = 7,当训练一棵树时,它会随机选择七个特征。假设选择了gender。如果gender被分成三列(gender_M、gender_F、gender_NA),那么随机森林分类器是否总是选择所有三列并将其计算为一个特性,还是只选择一个或两个?
发布于 2020-04-30 16:54:10
如果将max_features设置为低于列的实际数量的值(这是一种可取的方法,请参阅文档中的max_features推荐值),则是的,对于随机林中的给定估计器,可能只考虑虚拟列的一个子集。
但这并不一定太糟糕。在决策树中,在给定的层次上选择一个特征作为节点,目的是独立于其他特征,即仅考虑实际特征和目标,对某个度量进行优化。因此,从某种意义上说,模型不会将这些虚拟列视为属于同一特性的列。
但是,通常,二进制特性的最佳方法是提出一个适当的方法来填充缺失的值,并将其转换为编码为0s和1s的单个列。
https://stackoverflow.com/questions/61528588
复制相似问题