[英]What is the difference between pipeline and make_pipeline in scikit?
我从 sklearn 网页上得到了这个:
Pipeline : 带有最终估计器的变换流水线
Make_pipeline :从给定的估计量构造一个管道。 这是 Pipeline 构造函数的简写。
但是我仍然不明白什么时候必须使用每一个。 谁能给我一个例子?
唯一的区别是make_pipeline
自动为步骤生成名称。
例如,如果您想使用带有模型选择实用程序(例如 GridSearchCV)的管道,则需要步骤名称。 使用网格搜索,您需要为管道的各个步骤指定参数:
pipe = Pipeline([('vec', CountVectorizer()), ('clf', LogisticRegression()])
param_grid = [{'clf__C': [1, 10, 100, 1000]}
gs = GridSearchCV(pipe, param_grid)
gs.fit(X, y)
与 make_pipeline 进行比较:
pipe = make_pipeline(CountVectorizer(), LogisticRegression())
param_grid = [{'logisticregression__C': [1, 10, 100, 1000]}
gs = GridSearchCV(pipe, param_grid)
gs.fit(X, y)
因此,使用Pipeline
:
clf__C
。 make_pipeline
:
何时使用它们取决于您 :) 我更喜欢 make_pipeline 用于快速实验,而 Pipeline 用于更稳定的代码; 经验法则:IPython Notebook -> make_pipeline; 较大项目中的 Python 模块 -> 管道。 但是在一个模块中使用 make_pipeline 或者在一个简短的脚本或笔记本中使用 Pipeline 肯定不是什么大问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.