Scikit学习管道参数包含整个步骤,这会引起问题吗?

时间:2019-06-14 03:31:02

标签: machine-learning scikit-learn pipeline

一个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}

总而言之,我认为有一个问题是打印的“步骤”参数包含步骤本身,以及该步骤的实际参数,例如“ linreg__normalize”。

我想知道:

  1. 当我提供参数网格时会干扰RandomizedSearchCV吗?
  2. 如何确保如果我使用参数网格进行随机搜索,则参数将被正确覆盖并且不会重复使用构造函数中的步骤?可能出什么问题了? (假设参数网格是通过访问get_params来构建的,然后配置为网格)。

谢谢!

0 个答案:

没有答案