管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines)。
管道机制更像是编程技巧的创新,而非算法的创新。
利用pipeline我们可以方便的减少代码量同时让机器学习的流程变得直观
需要做如下操作,容易看出,训练测试集重复了代码
1 2 3 4 5 6 7 8 9 10
vect = CountVectorizer() tfidf = TfidfTransformer() clf = SGDClassifier() vX = vect.fit_transform(Xtrain) tfidfX = tfidf.fit_transform(vX) predicted = clf.fit_predict(tfidfX) # Now evaluate all steps on test set vX = vect.fit_transform(Xtest) tfidfX = tfidf.fit_transform(vX) predicted = clf.fit_predict(tfidfX)
利用pipeline,上面代码可以抽象为:
1 2 3 4 5 6 7 8
pipeline = Pipeline([ ('vect', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', SGDClassifier()), ]) predicted = pipeline.fit(Xtrain).predict(Xtrain) # Now evaluate all steps on test set predicted = pipeline.predict(Xtest)