5つの重複しない折り目に分割するターゲットデータセットがあります。 各繰り返し(合計反復== 5)では、パラメータ調整を行うために1倍(それをfold_for_tuning
と呼ぶ)を使用し、テストには4つのフォールドを使用します。GridSearchCVパラメータで分類が改善されない
これは、私がドメイン適応を行い、チューニングする前に、ソースデータを分類器に適合させ、ターゲットデータの小さなサブセットを使用して調整しているためです)。
私はGridSearchCVを呼び出し、fold_for_tuning
に合わせて、また、私は私がチューニングするパラメータの束を渡す:彼らは必要があるため(
param_test1 = {
'max_depth': [5, 7],
'min_child_weight': [0.5, 1, 2],
'gamma': [0.1, 1],
'subsample': [0.6, 0.7],
'colsample_bytree': [0.6, 0.7],
'reg_alpha': [0.01, 0.1]
}
gsearch = GridSearchCV(estimator=classifierXGB,
param_grid=param_test1,
scoring='accuracy',
n_jobs=4, iid=False, cv=2)
gsearch.fit(fold_for_tuning_data, fold_for_tuning_labels)
各反復の後、私はgsearch.best_params_
を取得し、私はclassifierXGB
にそれらを設定します私の理解では、より良い予測を与える)。私は test_y_predicted = classifierXGB.predict(4_unseen_folds)
呼び出すとき はその後、私は改善しませ得る:
prediction before tuning:
acc: 0.690658872245
auc: 0.700764301397
f1: 0.679211922203
prediction after tuning:
acc: 0.691382460414
auc: 0.701595887248
f1: 0.680132554837
しかし、私はgsearch.predict(4_unseen_folds)
を呼び出す場合、私はMUCH BETTERパフォーマンスを得る:
prediction grid search :
acc: 0.933313032887
auc: 0.930058979926
f1: 0.920623414281
だから私は混乱しています:グリッド検索で何が起こっていますか? param_grid
で渡すパラメータだけを最適化してはいけませんか?もしそうなら、なぜ同じ結果のパラメータをclassifierXGB
に設定しても、パフォーマンスは向上しませんか?
「反復」とは何ですか?それは明確ではない – MMF
あなたは 'gsearch.fit'に従って何をするかを含めて[MWE](http://stackoverflow.com/help/mcve)を表示できますか? – ncfirth