Шаг конвейера sklearn отображается как целый параметр, и его параметры также отображаются отдельно при использовании get_params.
Итак, вот самый простой пример того, в чем заключается моя проблема. Когда я это делаю:
from sklearn.pipeline import Pipeline
from sklearn import linear_model
pipeline = Pipeline(
[("linreg", linear_model.LinearRegression())]
)
print(pip.get_params())
Вывод:
{'memory': None,
'steps': [('linreg',
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False))],
'verbose': False,
'linreg': LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False),
'linreg__copy_X': True,
'linreg__fit_intercept': True,
'linreg__n_jobs': None,
'linreg__normalize': False}
Подводя итог, я думаю, что проблема в том, что напечатанный параметр "steps" содержит сам шаг вместе с реальными параметрами этого шага, такими как "linreg__normalize".
Мне интересно:
- Будет ли это мешать
RandomizedSearchCV
, когда я предоставлю сетку параметров?
- Как убедиться, что если я использую сетку параметров для случайного поиска, параметры будут правильно перезаписаны и не будут повторять шаги, как в конструкторе? Что может пойти не так? (Предположим, что сетка параметров была создана путем доступа к
get_params
, а затем настроена как сетка).
Спасибо!