私は scikit が初めてで、データ スケールとグリッド検索を組み合わせるには 2 つの小さな問題があります。
- 効率的なスケーラー
Kfolds を使用した相互検証を考慮すると、K-1 フォールドでモデルをトレーニングするたびに、データ スケーラー (たとえば preprocessing.StandardScaler() を使用) が K-1 フォールドにのみ適合し、次に適用されることを望みます。残りの折り目。
私の印象では、次のコードはデータセット全体のスケーラーに適合するため、以前に説明したように動作するように変更したいと考えています。
classifier = svm.SVC(C=1)
clf = make_pipeline(preprocessing.StandardScaler(), classifier)
tuned_parameters = [{'C': [1, 10, 100, 1000]}]
my_grid_search = GridSearchCV(clf, tuned_parameters, cv=5)
- 内側のスケーラー フィッティングを取得する
refit=True の場合、グリッド検索の「後」に、データセット全体でモデルが (最適な推定器を使用して) 再調整されます。私の理解では、パイプラインが再び使用されるため、スケーラーはデータセット全体に適合します。理想的には、その適合を再利用して「テスト」データセットをスケーリングしたいと考えています。GridSearchCV から直接取得する方法はありますか?