13

データセットに対して k-fold-cross-validation を実行するために LinearSVC を使用したいとしましょう。データの標準化をどのように実行しますか?

私が読んだベスト プラクティスは、トレーニング データで標準化モデルを構築し、このモデルをテスト データに適用することです。

単純な train_test_split() を使用すると、これは簡単に実行できるようになります。

X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y)

clf = svm.LinearSVC()

scalar = StandardScaler()
X_train = scalar.fit_transform(X_train)
X_test = scalar.transform(X_test)

clf.fit(X_train, y_train)
predicted = clf.predict(X_test)

k-fold-cross-validation を実行しながらデータを標準化するにはどうすればよいでしょうか? 問題は、すべてのデータ ポイントがトレーニング/テスト用であるため、cross_val_score() の前にすべてを標準化できないという事実から生じます。相互検証ごとに異なる標準化が必要ではないでしょうか?

ドキュメントは、関数内で内部的に行われている標準化について言及していません。私はSOLですか?

編集: この投稿は非常に役立ちます: Python - sklearn.pipeline.Pipeline とは正確には何ですか?

4

1 に答える 1