Параметры конвейера Scikit-learn содержат целые шаги, это может вызвать проблемы? - PullRequest
0 голосов
/ 14 июня 2019

Шаг конвейера 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".

Мне интересно:

  1. Будет ли это мешать RandomizedSearchCV, когда я предоставлю сетку параметров?
  2. Как убедиться, что если я использую сетку параметров для случайного поиска, параметры будут правильно перезаписаны и не будут повторять шаги, как в конструкторе? Что может пойти не так? (Предположим, что сетка параметров была создана путем доступа к get_params, а затем настроена как сетка).

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...