[解決済み] sklearn.pipeline.Pipelineって何?
質問
をどのように使用するのかがわかりません。
sklearn.pipeline.Pipeline
が正確に動作するのかがわかりません。
にはいくつかの説明があります。 doc . 例えば、彼らは何を意味するのでしょうか。
最終的な推定値を持つ変換のパイプライン。
私の質問をより明確にするために、何が
steps
? それらはどのように機能するのですか?
編集
回答のおかげで、私の質問を明確にすることができます。
パイプラインを呼び出し、ステップとして2つのトランスフォーマーと1つのエスティメータを渡すと、例えば、次のようになります。
pipln = Pipeline([("trsfm1",transformer_1),
("trsfm2",transformer_2),
("estmtr",estimator)])
これを呼び出すとどうなるのでしょうか?
pipln.fit()
OR
pipln.fit_transform()
推定器が変換器となり、変換器がフィットする仕組みがわかりません。
どのように解決するのですか?
トランスフォーマー scikit-learnでは、fitとtransformメソッド、またはfit_transformメソッドを持ついくつかのクラスがあります。
予測器 - fitメソッドとpredictメソッドを持つクラス、またはfit_predictメソッド。
パイプライン は単なる抽象的な概念であり、既存のMLアルゴリズムではありません。MLタスクではしばしば、最終的な推定値を適用する前に、生のデータセットに対して一連の異なる変換(特徴のセットを見つける、新しい特徴を生成する、いくつかの良い特徴だけを選択する)を実行する必要があります。
ここで はPipelineの良い使用例です。 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)
パイプラインを使えば、このメタ推定器の各段階のパラメータをグリッド検索することが簡単にできます。上のリンクで説明されている通りです。最後のステップを除くすべてのステップはtransformsでなければならず、最後のステップはtransformerまたはpredictorにすることができます。
編集する回答
:
を呼び出すと
pipln.fit()
- を呼び出すと、パイプライン内の各変換器は、前の変換器の出力にフィットします(最初の変換器は生のデータセットで学習されます)。 最後の推定値がtransformerであってもpredictorであっても、パイプライン上でfit_transform()を呼び出せるのは、最後の推定値がtransformer(fit_transform、またはtransformとfitメソッドを別々に実装)の場合のみで、パイプライン上でfit_predict()やpredict()を呼び出せるのは、最後の推定値がpredictorであるときのみです。つまり、最後のステップがpredictorであるパイプライン上では、fit_transformやtransformを呼び出すことができないのです。
関連
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Pythonの上達の道 - 見習いから第一人者へ
-
[解決済み] データフレームをピボットするにはどうしたらいいですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonコンテナのための組み込み汎用関数操作
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
Python入門 openを使ったファイルの読み書きの方法
-
Python 入出力と高次代入の基礎知識
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み】scikit-learnで分類器をディスクに保存する。