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

如何获取RFECV中每个_grid_score对应特征子集的特征索引

RFECV获取不同大小特征子集索引的方法

方法1:重新拟合RFE(最稳妥,100%匹配得分对应子集)

RFECV最终返回的ranking_属性仅记录了递归到最优特征数过程中的特征淘汰顺序,低于最优特征数的淘汰顺序不会在ranking_中体现,最稳妥的方法是使用和RFECV完全相同的基模型、step参数,初始化RFE对象指定目标特征数,拟合后直接获取索引:

import numpy as np
from sklearn.feature_selection import RFE

# 复用训练RFECV时的基估计器
base_estimator = rfecv.estimator_

# 获取4个特征对应的索引
rfe_4 = RFE(estimator=base_estimator, n_features_to_select=4, step=rfecv.step)
rfe_4.fit(X, y) # X、y为训练RFECV时使用的相同特征矩阵和标签
feature_4_idx = np.where(rfe_4.get_support())[0]

# 获取3个特征对应的索引
rfe_3 = RFE(estimator=base_estimator, n_features_to_select=3, step=rfecv.step)
rfe_3.fit(X, y)
feature_3_idx = np.where(rfe_3.get_support())[0]

该方法得到的特征子集和你提到的_grid_score(scikit-learn官方属性为grid_scores_,0.22+版本替换为cv_results_['mean_test_score'])中对应特征数的得分完全匹配。

方法2:基于ranking_快速筛选(仅适用于特征数≥最优特征数的场景)

如果需要获取的特征数≥最优特征数,可直接通过ranking_筛选:ranking_数值越小特征越重要,rank=1为最优子集特征,rank=n对应第n-1轮淘汰的特征,保留所有ranking_ ≤ (总特征数 - 目标特征数 + 1)的特征即可得到对应子集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:09:02