2017-08-08 17 views
-1
pipe = Pipeline([('reduce_dim', LinearDiscriminantAnalysis()),('classify', LogisticRegression())]) 
param_grid = [{'classify__penalty': ['l1', 'l2'], 
       'classify__C': [0.05,0.1, 0.3, 0.6, 0.8, 1.0]}] 

gs = GridSearchCV(pipe, param_grid=param_grid, cv=5, scoring='roc_auc', n_jobs=3) 
gs.fit(data, label) 

パイプラインとgridsearchcvの使用に関する質問があります。今私は最初に次元を減らすためにldaを使用しようとすると、私はパイプラインとgridsearchcvについてのプロセスを知りたいですか? split train/test-> lda-> fit &予測またはlda-> split train/test-> fit &予測するか?パイプライン付きsklearn lda gridsearchcv

+0

第1の選択肢は現実世界のシナリオで実行可能です。 2番目に、LDAはテストデータからの情報漏洩を持つためです。とにかくこの質問は、プログラミングについてのことではなく、方法論の詳細なので、[Cross-validated](https://stats.stackexchange.com) –

+0

に適しています。@seraのコメントの後に、 gridSearchCVの動作順序、またはタスクに適した順序を知りたいかどうかを指定します。 –

答えて

0

パート1

まず第一に、Pipelineはあなたがやろうとしている手順を定義します。

あなたの場合は、まずLinearDiscriminantAnalysisを使用し、次にLogisticRegressionを使用します。

第2

gs = GridSearchCV(pipe, param_grid=param_grid, cv=5, scoring='roc_auc', n_jobs=3) 

では、交差検定(CV)= 5

この数は定義を定義した折り畳みの数((成層)KFold)したがって、データを自動的に5回列車とテストデータに分割し、Pipelineが定義する分析を1回実行します。

ボトムライン:最初のケース(スプリットトレイン/テスト - > lda->フィット&予測)が問題になるかもしれませんが、方法論に関連しています。

関連する問題