【问题标题】:How to select features for random forest using varImp function?如何使用 varImp 函数为随机森林选择特征?
【发布时间】:2015-07-13 22:58:01
【问题描述】:

我在一个包含大约 100 个特征的训练数据上应用了随机森林。现在我想在对数据应用随机森林模型之前应用特征选择技术以减少特征数量。如何使用 varImp 函数(来自 caret 包)来选择重要的特性?我读到 varImp 本身使用一些分类方法来选择特征(我发现这非常违反直觉)。我如何准确地应用 varImp 来获得重要的特征子集,然后在应用随机森林分类算法时可以使用这些子集?

【问题讨论】:

    标签: r random-forest feature-selection


    【解决方案1】:

    来自caret 包作者 Max Khun feature selection

    可以使用 caret 的 train 函数访问的许多模型产生 不一定使用所有预测变量的预测方程。 这些模型被认为具有内置特征选择

    rf 就是其中之一。

    许多函数都有一个名为predictors 的辅助方法 返回一个向量,指示最终使用了哪些预测变量 型号。

    如果您想检索模型中的重要性分数,请在您的 train() 调用中添加 importance = TRUE

    在许多情况下,使用带有 内置特征选择的这些模型将 比搜索例程的算法更有效 正确的预测变量在模型之外。内置功能选择 通常将预测器搜索算法与参数耦合 估计并且通常使用单个目标函数进行优化 (例如错误率或可能性)。

    【讨论】:

    • 我有两个疑问。 (1) 如果我使用 randomForest 包中的 ranfomForest() 函数而不是插入符号中的 train() 怎么办?它还会为我处理自动功能选择吗? (2) 在应用randomForest() 之前,我将如何使用varImp()(比如PLS)使用其他一些特征选择技术?另外,这样会有效吗?
    • @Sangram 1) radomForest() 具有 rfcv(用于特征选择的随机森林交叉验证)。此函数通过嵌套的交叉验证程序显示具有顺序减少的预测变量数量(按变量重要性排序)的模型的交叉验证预测性能。也可以参考importance。这是randomForest 生成的变量重要性度量的提取器函数 2) 如果您仍想从模型中进行特征选择,您可以使用任何您想要的技术。
    猜你喜欢
    • 2018-06-17
    • 2018-04-03
    • 2016-02-25
    • 1970-01-01
    • 2020-05-16
    • 2015-09-28
    • 2021-05-09
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多