scikit-learnのトランスフォーマー -fitおよびtransformメソッド、またはfit_transformメソッドを持つクラス。
予測子 -フィットおよび予測メソッド、またはfit_predictメソッドを持つクラス。
パイプラインは単なる抽象的な概念であり、既存のmlアルゴリズムではありません。多くの場合、MLタスクでは、最終的な推定量を適用する前に、生データセットの一連のさまざまな変換(機能のセットの検索、新しい機能の生成、一部の優れた機能のみの選択)を実行する必要があります。
以下はパイプラインの使用例です。Pipelineは、変換の3つのステップすべてとその結果の推定量に対して単一のインターフェースを提供します。トランスフォーマーと予測子を内部にカプセル化し、次のようなことができるようになります。
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_transformを呼び出したり、transformしたりすることはできません。その最後のステップは予測変数です。