0

単一の GridSearchCV 呼び出しで、さまざまな異なるモデル セットを使用して複数のデータ変換手法を実験したいテキスト データがいくつかあります。モデル 1、2、および 3 を使用したパイプラインでデータ変換 A が与えられ、モデル 4、5、および 6 を使用したパイプラインでデータ変換 B が与えられた場合、A と 1、2、または 3 のいずれかの組み合わせ OR 4、5、または 6 の B は、最良の予測結果を生成しますか?

現在、私が行っていることは、2 つの個別の GridSearchCV 呼び出しを行うことです。また、私がやりたいことに似たものについて、インターネットでいくつかの例を探しています。

この小さなチュートリアルを見つけました: https://www.kaggle.com/evanmiller/pipelines-gridsearch-awesome-ml-pipelinesですが、やりたいことの半分しかできません。以下の例を考えると (リンクされたチュートリアルの「Pipeline 4.0 - contVars + tax (FeatureUnion intro)」セクションから抜粋):

pipeline = Pipeline([

    ('unity', FeatureUnion(
        transformer_list=[

            ('cont_portal', Pipeline([
                ('selector', PortalToColDimension(contVars)),
                ('cont_imp', Imputer(missing_values='NaN', strategy = 'median', axis=0)),
                ('scaler', StandardScaler())             
            ])),
            ('tax_portal', Pipeline([
                ('selector', PortalToColDimension(taxVars)),
                ('tax_imp', Imputer(missing_values='NaN', strategy = 'most_frequent', axis=0)),
                ('scaler', MinMaxScaler(copy=True, feature_range=(0, 3)))
            ])),
        ],
    )),
    ('column_purge', SelectKBest(k = 5)),    
    ('lgbm', LGBMRegressor()),
])

parameters = {}
parameters['column_purge__k'] = [5, 10]

grid = GridSearchCV(pipeline, parameters, scoring = 'neg_mean_absolute_error', n_jobs= 2)
grid.fit(x_train, y_train)   

print('Best score and parameter combination = ')

print(grid.best_score_)    
print(grid.best_params_)    

y_pred = grid.predict(x_valid)

「cont_portal」と「tax_portal」は 2 つの異なるデータ変換パイプライン (私がやりたいことの前半) を生成しますが、どちらも LGBMRegressor に向けられているようです。たとえば、「cont_portal」を LGBMRegressor のみで使用し、「tax_portal」を Logit モデルでのみ使用する代わりに、単一の一般的なパイプラインと GridSearchCV への単一の呼び出しを維持することは可能ですか?

4

1 に答える 1