我是从sklearn网页上得到的:
a)管道:使用最终估算器进行变换的管道
b)Make_pipeline:根据给定的估算器构造一个管道。这是Pipeline构造函数的简写。
但是当我必须使用每一个时,我仍然不明白。谁能举个例子呢?
答案 0 :(得分:44)
唯一的区别是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肯定不是什么大问题。