<p>您需要使用<code>__</code>格式化估计器的参数,以便它可以作为管道的参数提供。我已经编写了一个小函数,可以为估计器获取管道和参数,然后它将为估计器返回适当的参数。你知道吗</p>
<p>请尝试以下示例:</p>
<pre><code>
from sklearn.pipeline import make_pipeline
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import StandardScaler
pipe_rf = make_pipeline(StandardScaler(), RandomForestRegressor())
rf_params = {'n_estimators': 10, 'n_jobs': -1, 'warm_start': True, 'max_features':2}
def params_formatter(pipeline, est_params):
est_name = pipeline.steps[-1][0]
return {'{}__{}'.format(est_name,k):v for k,v in est_params.items()}
params = params_formatter(pipe_rf, rf_params)
pipe_rf.set_params(**params)
# Pipeline(memory=None,
# steps=[('standardscaler',
# StandardScaler(copy=True, with_mean=True, with_std=True)),
# ('randomforestregressor',
# RandomForestRegressor(bootstrap=True, criterion='mse',
# max_depth=None, max_features=2,
# max_leaf_nodes=None,
# min_impurity_decrease=0.0,
# min_impurity_split=None,
# min_samples_leaf=1, min_samples_split=2,
# min_weight_fraction_leaf=0.0,
# n_estimators=10, n_jobs=-1,
# oob_score=False, random_state=None,
# verbose=0, warm_start=True))],
# verbose=False)
</code></pre>