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

基于RandomForestRegressor调用RFECV做回归任务特征筛选运行无结果求解

问题原因分析
  • 算法本身计算量过高:RFECV默认每次仅剔除1个特征,122个初始特征需要迭代122轮,每轮要完成4折交叉验证的随机森林训练,累计需要训练488个包含100棵树的随机森林模型,计算量极大
  • 代码未做并行优化:默认配置下随机森林和RFECV都仅调用单核心运算,你的2015款双核i5算力有限,无法在短时间内完成上述计算任务
  • 未做前置特征粗筛:122个特征中存在大量无意义、高共线性的冗余特征,直接输入RFECV会产生大量无效计算
优化方案

前置特征粗筛,减少初始特征量

先通过低计算成本的方法把初始特征降到30以内,再跑RFECV:

  • 用方差筛选剔除方差低于0.01的近常数特征
  • 计算特征与目标变量的皮尔逊相关系数,剔除相关系数绝对值低于0.01的弱相关特征
  • 计算VIF(方差膨胀因子)剔除VIF大于10的高共线性特征

优化参数降低计算量

  • 给随机森林添加n_jobs=-1参数调用全部CPU核心并行计算,特征筛选阶段可将n_estimators降到30~50,无需使用精度过高的复杂模型
  • 给RFECV设置step参数,比如step=2每次剔除2个特征,迭代次数直接减半,同时可将交叉验证折数降到3折减少单轮计算量
    优化后的参考代码如下:
# 优化后的随机森林配置
RF = RandomForestRegressor(n_estimators=50, n_jobs=-1, random_state=42)
# 优化后的RFECV配置
rfecv = RFECV(estimator=RF, cv=3, step=2, n_jobs=-1)

替换为更轻量的筛选方案

如果优化后运行速度仍无法接受,可以直接放弃RFECV,改用随机森林输出的feature_importances_属性统计特征重要性,直接取Top N的重要特征即可,计算速度比RFECV快数十倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:39:04