パイプラインとGridSearchCVを使用して機能を自動的に選択しています。データセットが小さいので、GridSearchCVでパラメータ 'cv'をStratifiedShuffleSplitに設定しました。GridSearchCVのデータ全体ではなく、パイプラインのトランスフォーマーがトレーニングデータに作用する
selection = SelectKBest()
clf = LinearSVC()
pipeline = Pipeline([("select", selection), ("classify", clf)])
cv = StratifiedShuffleSplit(n_splits=50)
grid_search = GridSearchCV(pipeline, param_grid=param_grid, cv = cv)
grid_search.fit(X, y)
私が "を分ける場合、結果が異なってくるので、SelectKBestは、各分割の代わりに、データセット全体(後者は、私が欲しいものである)のトレーニングデータに作用すると思われ、次のようなコードに見えますSelect 'と' classify 'を実行します。ここで、StratifiedShuffleSplitは、分類子にのみ作用します。
この場合、パイプラインとGridSearchCVを使用する正しい方法は何ですか?どうもありがとう!
これは、このトピックについて説明している論文http://dx.doi.org/10.1093/bioinformatics/btp621の正しいリンクです。 –