【问题标题】:Feature selection using Random forest with importance / varImp functions with factor variables使用具有重要性的随机森林/具有因子变量的 varImp 函数进行特征选择
【发布时间】:2018-04-03 22:32:54
【问题描述】:

为了构建分类模型,我试图从数据集中选择最重要的特征。
我的数据包含混合属性(数字和分类)。 在应用随机森林从数据中选择特征以提高模型的准确性之后,我计划在 R 中应用 (importance or varImp) 函数。

我的问题是:我可以直接在数据上应用随机森林而无需转换步骤,或者我必须将分类属性转换为二进制 (0,1)

我在数值数据集上应用了具有重要性/varImp 函数的随机森林,模型运行良好,但我不确定混合数据。

【问题讨论】:

  • 首先,由于变量重要性衡量的是删除一列后准确性的下降,所以应该没问题。到目前为止你试过了吗?你有什么问题吗? Q 可能会被标记为离题...
  • 我只对数字数据集应用了随机森林。我想提高模型的准确性,所以我在 R 中应用了重要性函数来选择最重要的特征,准确性正在提高,现在我要对混合数据应用相同的方法,我需要知道我是否可以应用它直接(不将数据从类型转换为另一种类型)或不
  • 我认为是的,因为 VI 度量不受数据类型的影响。

标签: r types classification random-forest


【解决方案1】:

是的,可以在 R 中为变量重要性度量和分类/回归包含阶乘(甚至有序)变量。

查看这个可重现的示例:

library(randomForest)

df <- iris
df$Petal.Width <- as.factor(df$Petal.Width)
str(df)
# 'data.frame': 150 obs. of  5 variables:
# $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
# $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
# $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
# $ Petal.Width : Factor w/ 22 levels "0.1","0.2","0.3",..: 2 2 2 2 2 4 3 2 2 1 ...
# $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

rfmodel <- randomForest(x = df[,1:4], 
                        y = df$Species, 
                        importance = T)
importance(rfmodel)
#                 setosa versicolor virginica MeanDecreaseAccuracy MeanDecreaseGini
# Sepal.Length 11.266441   8.036164 13.480521            15.940870        14.152530
# Sepal.Width   6.394913   4.071819  5.076422             7.869699         2.880664
# Petal.Length 43.532850  39.802356 46.246262            60.663778        53.622069
# Petal.Width  14.272307  24.389310 19.109018            26.923048        28.617028

【讨论】:

  • 感谢 Loki 的回答
【解决方案2】:

如果您使用 randomForrest 包中的 randomForrest 函数,您不必将独立的分类变量转换为每个值的单独列。

不过,您需要确保因(预测)变量是因子(用于分类)或数字(用于回归)。

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 1970-01-01
    • 2021-05-09
    • 2018-12-01
    • 2013-12-02
    • 2017-04-10
    • 2021-08-29
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多