一些具有fit和transform方法或fit_transform方法的类。
-具有fit和预测方法或fit_predict方法的某些类。
只是一个抽象概念,它不是现有的ml算法。在ML任务中,通常需要在应用最终估计量之前对原始数据集执行不同变换的序列(查找特征集,生成新特征,仅选择一些良好特征)。
这是管道使用的一个很好的例子。管道为您提供了用于转换的所有三个步骤和结果估计器的单一界面。它在内部封装了转换器和预测变量,现在您可以执行以下操作:
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 = Pipeline([
('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', SGDClassifier()),
])
predicted = pipeline.fit(Xtrain).predict(Xtrain)
# Now evaluate all steps on test set
predicted = pipeline.predict(Xtest)
使用管道,您可以轻松地针对该元估计器的每个步骤对一组参数执行网格搜索。如以上链接中所述。除最后一个步骤外,所有步骤都必须是转换步骤,最后一个步骤可以是转换器或预测值。 :致电时pipln.fit()
-管道内的每个变压器都将安装在先前变压器的输出上(从原始数据集获悉第一个变压器)。最后一个估计器可以是转换器或预测器,仅当您的最后一个估计器是转换器(可以实现fit_transform或分别转换和拟合方法)时,才可以在管道上调用fit_transform(),只有在以下情况下,才可以在管道上调用fit_predict()或predict():您的最后一个估算器是预测器。因此,您无法调用fit_transform或在管道上进行转换,后者的最后一步是预测变量。