Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ファイナル推定器 | パイプライン
Pythonによる機械学習入門

bookファイナル推定器

メニューを表示するにはスワイプしてください

Pipelineは以前は前処理のために使用されていましたが、本来の目的は前処理と最終予測器を連結することです。パイプラインの最後のステップには、予測を生成する任意の推定器(通常はモデル)を配置できます。

Note
注意

.fit()を呼び出すと、各トランスフォーマーは.fit_transform()を実行します。 .predict()を呼び出すと、パイプラインはデータを最終推定器に渡す前に.transform()を使用します。 これは、新しいデータがトレーニングデータとまったく同じように変換される必要があるために必須です。

なぜ.transform()なのか?

新しいデータに対して.fit_transform()を使用すると、エンコーディング(例:OneHotEncoder)が変更され、列の不一致や信頼性の低い予測が発生する可能性があります。 .transform()一貫した前処理を保証し、未知のカテゴリを無視し、同じ列順を維持します。

ワンホットエンコードされた訓練データの例:

予測対象となる新しいインスタンス:

.fit_transform()新しいインスタンスに適用すると、OneHotEncoder が異なる順序でカラムを生成したり、新しいカラムを追加したりする可能性があります。これにより、新しいデータが訓練セットと一貫性のない変換を受け、予測が信頼できなくなります

しかし、.transform() を使用することで、新しいデータが トレーニングデータとまったく同じように エンコードされ、トレーニング時に存在しなかったカテゴリは無視されます。

最終推定器の追加

モデルをパイプラインの最後のステップとして追加します。

pipe = make_pipeline(
    ct,
    SimpleImputer(strategy='most_frequent'),
    StandardScaler(),
    KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)

これにより、前処理と予測を一度の呼び出しで実行できます。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  5
some-alt