python - sklearn 随机森林分类器可以处理分类变量吗?

标签 python machine-learning scikit-learn random-forest

我找到了 this thread from 2014答案表明不,sklearn 随机森林分类器无法处理分类变量(或至少不能直接处理)。答案在 2020 年有变化吗?

我要喂gender作为我模型的一个功能。然而,gender可以取三个值:M , Fnp.nan .如果我将此列编码为三个二分列,随机森林分类器如何知道这三列代表单个特征?

想象 max_features = 7.当训练给定的树时,它会随机随机选取七个特征。假设 gender被选中。如 gender被分成三列( gender_Mgender_Fgender_NA ),随机森林分类器是否总是选择所有三列并将其视为一个特征,还是有可能只选择一两个?

最佳答案

max_features设置为低于实际列数的值(这是可取的方法,请参阅 docsmax_features 的推荐值),然后是的,对于随机森林中的给定估计量,有可能只考虑虚拟列的一个子集。

但这不一定太糟糕。在决策树中,选择一个特征作为给定级别的节点,旨在优化某些度量,独立于其他特征,即只考虑实际特征和目标。因此,从某种意义上说,模型不会将这些虚拟列视为属于同一特征。

不过,一般而言,二进制特征的最佳方法是提出一种适当的方法来填充缺失值,并将其转换为编码为 0 的单列。 s 和 1 s。

关于python - sklearn 随机森林分类器可以处理分类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61528588/

相关文章:

scikit-learn - 如何在MLPClassifier中设置初始权重?

python - 如何加速 HTTP 请求

python - Python Opencv drawContour错误

python - Theano - Keras - 没有名为 `pool` 的模块

python - 在 scikit-learn ML 算法中使用 float64 数据类型是否正确?

machine-learning - 使用 sklearn 保留数据中的零

python - 使用 Plotly Dash for Python 进行 JBeans (JMX) 监控

python - 我如何使用 Shapely 检测所有距离小于 N 米的点?

machine-learning - 为什么 NLP 和机器学习社区对深度学习感兴趣?

python - 修改大型cython项目的工作流程