sklearn随机森林分类器能处理分类变量吗?

我找到了2014年的这个讨论,答案是不能,sklearn随机森林分类器不能处理分类变量(至少不能直接处理)。到了2020年,这个答案有变化吗?

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

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


回答:

如果max_features设置为低于实际列数的值(这是建议的方法,请参见文档中推荐的max_features值),那么是的,对于随机森林中的某个估计器,有可能只考虑虚拟列的一个子集。

但这不一定是坏事。在决策树中,一个特征在给定层次被选为节点,目的是优化某个度量值,这个过程独立于其他特征,只考虑实际的特征和目标。因此,在某种意义上,模型不会将这些虚拟列视为属于同一个特征

总的来说,对于二元特征,最好的方法是找到适当的方法来填补缺失值,并将其转换为单列编码为01

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注