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

如何提取sklearn中SequentialFeatureSelector的最佳估计器?

关于SequentialFeatureSelector提取最优模型的方法

首先明确:SequentialFeatureSelector(简称SFS)核心是筛选特征,本身不会直接存储训练好的最优模型,但你可以通过以下步骤复刻出对应模型:

1. 获取最优特征子集

训练完成后,直接通过selected_features_属性拿到SFS筛选出的最优特征索引:

# 假设你的SFS实例名为sfs
best_feature_indices = sfs.selected_features_

2. 复刻基础模型并重新训练

用筛选后的特征,结合SFS中基础模型的参数配置,重新训练最优模型:

# 假设原始特征矩阵为X,标签为y
X_best = X[:, best_feature_indices]

# 从SFS的参数中提取你当初传入的基础模型配置
base_estimator_params = sfs.get_params()['estimator']
# 初始化相同配置的基础模型(以RandomForestClassifier为例)
from sklearn.ensemble import RandomForestClassifier
best_model = RandomForestClassifier(**base_estimator_params)

# 用最优特征子集训练模型
best_model.fit(X_best, y)

关于get_params()的说明

get_params()返回的是SFS的全部配置参数,其中estimator字段对应你当初传入的基础模型的参数集合。比如你初始化SFS时用了estimator=RandomForestClassifier(n_estimators=100, max_depth=5),那sfs.get_params()['estimator']就会返回{'n_estimators': 100, 'max_depth': 5, ...}这类参数,用它就能复刻出和当初一致的基础模型。

关键注意点

  • 不要直接用SFS的estimator_属性:这个属性存储的是SFS最后一步训练的模型,不一定对应最优特征子集的模型。
  • 若基础模型有随机状态参数(比如random_state),务必保持参数一致,才能保证重新训练的模型结果和SFS筛选时的最优模型匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:44:50