【问题标题】:Feature Selection for Regression Models in RR中回归模型的特征选择
【发布时间】:2015-05-21 19:13:34
【问题描述】:

我正在尝试在 R 中找到一个可用于回归的特征选择包,大多数包都使用响应变量的因子或类来实现它们的分类方法。我特别感兴趣的是是否有一种方法使用随机森林来达到这个目的。此外,该领域的一篇好论文也会有所帮助。

【问题讨论】:

标签: r random-forest feature-selection


【解决方案1】:

IIRC randomForest 包也做回归树。您可以从 Breiman 论文开始,然后从那里开始。

【讨论】:

    【解决方案2】:

    您可以通过多种方式使用随机森林计算变量的重要性。

    我。平均减少杂质 (MDI) / Gini 重要性: 这利用了随机森林模型或决策树。在训练一棵树时,它是通过每个特征减少树中加权杂质的程度来衡量的。对于森林,可以平均每个特征的杂质减少,并根据此度量对特征进行排名。这是使用 R 的相同示例。

    fit <- randomForest(Target ~.,importance = T,ntree = 500, data=training_data)
    var.imp1 <- data.frame(importance(fit, type=2))
    var.imp1$Variables <- row.names(var.imp1)
    varimp1 <- var.imp1[order(var.imp1$MeanDecreaseGini,decreasing = T),]
    par(mar=c(10,5,1,1)) 
    giniplot <- barplot(t(varimp1[-2]/sum(varimp1[-2])),las=2,
                         cex.names=1,
                        main="Gini Impurity Index Plot")
    

    输出将如下所示:Gini Importance Plot

    二。排列重要性或平均精度降低 (MDA):通过移除该特征与目标之间的关联来评估每个特征的排列重要性或平均精度降低 (MDA)。这是通过随机排列特征值并测量由此产生的误差增加来实现的。相关特征的影响也被移除。 R中的示例:

    fit <- randomForest(Target ~.,importance = T,ntree = 500, data=training_data)
    var.imp1 <- data.frame(importance(fit, type=1))
    var.imp1$Variables <- row.names(var.imp1)
    varimp1 <- var.imp1[order(var.imp1$MeanDecreaseGini,decreasing = T),]
    par(mar=c(10,5,1,1)) 
    giniplot <- barplot(t(varimp1[-2]/sum(varimp1[-2])),las=2,
                         cex.names=1,
                        main="Permutation Importance Plot")
    

    这两个是直接使用随机森林的。有一些更易于使用的指标用于变量重要性计算目的。 'Boruta' 方法和证据权重 (WOE) 和信息价值 (IV) 也可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2019-11-16
      • 2020-06-11
      • 2021-06-10
      • 2019-10-08
      • 2018-02-27
      • 2018-11-14
      • 2023-03-10
      • 2015-05-10
      相关资源
      最近更新 更多