You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mlr3中基于最小RMSE终止RFE的实现及嵌套重采样问题咨询

问题与解答

用户问题

我想在随机森林模型中使用递归特征消除(RFE),希望基于得到最小RMSE的特征集终止迭代(如caret文档中的示例图所示)。查看文档后,我认为默认终止条件是保留一半特征?

感谢@be-marc的帮助,因刚接触相关技术,我在现有代码(如下)中尝试实现您的建议,但由于使用AutoFSelector和嵌套重采样,不确定如何获取存档:

ARMSS<-read.csv("Index ARMSS Proteomics Final.csv", row.names=1)

set.seed(123, "L'Ecuyer")

task = as_task_regr(ARMSS, target = "Index.ARMSS")

learner = lrn("regr.ranger", importance = "impurity")

set_threads(learner, n = 8)

resampling_inner = rsmp("cv", folds = 7)
measure = msr("regr.rmse")
terminator = trm("none")

at = AutoFSelector$new(
  learner = learner,
  resampling = resampling_inner,
  measure = measure,
  terminator = terminator,
  fselect = fs("rfe", n_features = 1, feature_fraction = 0.5, recursive = FALSE),
  store_models = TRUE)

resampling_outer = rsmp("repeated_cv", folds = 10, repeats = 10)

rr = resample(task, at, resampling_outer, store_models = TRUE)

我是否应使用extract_inner_fselect_archives()命令识别每次迭代中最小RMSE对应的特征集?如何调和不同迭代间特征数量及所选特征的差异?

解答

关于RFE的终止条件

你理解的没错,当前代码里fs("rfe")设置的feature_fraction=0.5,确实会让每次迭代移除一半特征,直到剩下n_features=1个特征——这是当前参数下的默认迭代逻辑。如果想基于最小RMSE来锁定最优特征集,不需要提前设置终止器,让RFE跑完所有可能的特征数量迭代即可,之后从存档里筛选出RMSE最低的那组特征。

获取RFE存档与筛选最优特征集

  1. 提取存档:你提到的extract_inner_fselect_archives()完全正确,执行这个函数可以获取每个外层重采样折中的RFE迭代记录,每一行对应一次特征数量缩减后的RMSE结果:

    archives <- extract_inner_fselect_archives(rr)
    

    结果里会包含n_features(当前保留的特征数)、regr.rmse(对应RMSE值)以及features(当前保留的特征列表)等关键列。

  2. 筛选单折最优特征集:对每个外层折的存档,找出RMSE最小的那一行,记录对应的特征数量和特征列表:

    library(dplyr)
    optimal_per_fold <- archives %>%
      group_by(iteration) %>% # 按外层折分组
      slice_min(regr.rmse, n = 1) # 取每组RMSE最小的记录
    
  3. 调和不同迭代的特征差异:嵌套重采样的每一组折数据分布存在差异,选出来的特征集必然会有不同,你可以用以下几种方式处理:

    • 投票法:统计所有最优特征集中每个特征的出现次数,选择出现频率最高的Top N个特征(N可以参考各折最优特征数量的中位数)。
    • 聚合重要性:从每个RFE迭代的模型中提取特征重要性,计算所有折的平均重要性,再按平均重要性阈值筛选特征。
    • 中位数特征数:先统计各折最优特征数量的中位数,然后从所有存档中筛选出特征数等于该中位数的记录,再取这些记录中RMSE最低的特征集,或者对这些特征集取交集/并集。

后续步骤

筛选出最终的特征集后,你可以用这些特征重新定义任务,再训练最终的随机森林模型,并用外层重采样的结果做最终评估。


内容的提问来源于stack exchange,提问作者awaldman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:50:26