如何在网格搜索中参数化特征选择步骤内嵌的估计器参数
网格搜索内嵌估计器参数的配置方法
sklearn的管道和嵌套估计器的参数访问统一使用**双下划线__**做层级穿透,针对你当前场景的配置规则如下:
- 你的管道中特征选择步骤命名为
selector,对应类为SelectFromModel SelectFromModel的内嵌估计器对应参数名为estimator- 内嵌的
RandomForestClassifier的n_estimators为下一级参数
最终需要调优的参数完整命名为selector__estimator__n_estimators,直接添加到你的param_grid中即可,修改后的参数网格示例如下:
param_grid = { "selector__threshold": ['0.45*median', '0.5*median', '0.55*median', '1*median', '1.25*median', '1.5*median', '1.75*median', '2*median'], # 新增内嵌随机森林的n_estimators调优项,按需替换为你需要的候选值 "selector__estimator__n_estimators": [50, 100, 200, 300], "regressor__penalty": ['l2'], "regressor__C": [0.05, 0.1, 0.25, 0.5, 0.75, 1, 1.5], }
注意:如果你使用的sklearn版本低于0.22,
SelectFromModel的内嵌估计器参数名为base_estimator,对应参数名改为selector__base_estimator__n_estimators即可。
其余网格搜索代码不需要修改,直接运行就能同时调优特征选择阈值、内嵌随机森林的树数量和最终回归器的正则参数。
内容的提问来源于stack exchange,提问作者AndreasInfo
相关产品推荐
相关产品推荐

