2017-05-04 9 views
0

次のように私は、層別化したkひだに設定私のトレーニングを分割しています:最終層状K-フォールドパフォーマンス個別

n_folds = 5 
skf = list(StratifiedKFold(y, n_folds, random_state=SEED)) 

for k, (train, test) in enumerate(skf): 
     X_train = X[train] 
     y_train = y[train] 
     X_val = X[test] 
     y_val = y[test] 

     clf.fit(X_train, y_train) 
     preds = clf.predict_proba(X_val) 

を期待通りに最初の4つのフォールドの分類精度があります。 最後のフォールドが著しく悪化しました。

私はSEEDとn_foldsの値を変えようとしましたが、すべての場合において、最後の倍率は常に最悪です(5倍の約3%)。なぜこうなった?

ありがとうございます。

+0

あなたは学習率が低いかもしれません。 –

答えて

0

StratifiedKFoldはデフォルトでデータをシャッフルしません。したがって、シャッフルパラメータをTrueに設定する必要がありました。

n_folds = 10 
skf = list(StratifiedKFold(y, n_folds, shuffle=True, random_state=SEED)) 
関連する問題