【问题标题】:Discretizing continuous variables for RandomForest in Sklearn离散化 Sklearn 中 RandomForest 的连续变量
【发布时间】:2018-05-16 13:40:39
【问题描述】:

我想使用随机森林进行基于基尼指数的特征选择。我的数据集混合了数字(连续)和分类(字符串)数据。这是数据集的一个例子

变量 1 变量 2
第198章 第336章 252.3 crIgUHSK8h 第252章

我知道树适用于离散数据(分类),但 Sklearn 中的 RandomForest 是否需要首先离散化连续数值数据,或者它可以处理它?对于分类字符串变量,我使用以下内容将字符串编码为带有零和一的数字列

pandas.get_dummies(X['Var2'])

它可以工作,但是对于数字我尝试了以下离散化

pandas.qcut(X['Var1'], 2 , retbins=True) 

但我不断收到非唯一垃圾箱的错误!

我需要离散化吗?我该怎么做?

【问题讨论】:

  • 数据示例不清楚如何发布表格??

标签: python random-forest sklearn-pandas


【解决方案1】:

随机森林应该支持连续变量没问题。参见例如this sample

【讨论】:

  • 也就是说决策树也支持连续变量?
  • 是的,没错。事实上,最好不要对它们进行分类——然后树可以最佳地选择“切割”分布的位置。例如。假设正确的决策切分是一个特征是小于还是大于 15。如果您在此之前将其离散到 bin [0, 10)、[10, 20)、[20, 30) 等中,您将丢失该信息。
【解决方案2】:

当您根据分类值制作假人时,树木和森林的效果会更差。

您只需要标记分类特征 - 仅此而已!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多