5
我得到這個從sklearn網頁:scikit中pipeline和make_pipeline有什麼區別?
一)管道:構建從給定的估計管道:以最終估計
B)Make_pipeline變換的管道。這是Pipeline構造函數的簡寫。
但我仍然不明白當我必須使用每一個。任何人都可以給我一個例子嗎?
我得到這個從sklearn網頁:scikit中pipeline和make_pipeline有什麼區別?
一)管道:構建從給定的估計管道:以最終估計
B)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肯定不是什麼大問題。