Hi, Raga, I think that if GridSearchCV is used for classification, the stratified k-fold doesn’t do shuffling by default. Say you do 20 grid search repetitions, you could then do sth like: from sklearn.model_selection import StratifiedKFold for i in range(n_reps): k_fold = StratifiedKFold(n_splits=5, shuffle=True, random_state=i) gs = GridSearchCV(..., cv=k_fold) ... Best, Sebastian
On Jan 26, 2017, at 5:39 PM, Raga Markely <raga.markely@gmail.com> wrote:
Hello,
I was trying to do repeated Grid Search CV (20 repeats). I thought that each time I call GridSearchCV, the training and test sets separated in different splits would be different.
However, I got the same best_params_ and best_scores_ for all 20 repeats. It looks like the training and test sets are separated in identical folds in each run? Just to clarify, e.g. I have the following data: 0,1,2,3,4. Class 1 = [0,1,2] and Class 2 = [3,4]. Suppose I call cv = 2. The split is always for instance [0,3] [1,2,4] in each repeat, and I couldn't get [1,3] [0,2,4] or other combinations.
If I understand correctly, GridSearchCV uses StratifiedKFold when I enter cv = integer. The StratifiedKFold command has random state; I wonder if there is anyway I can make the the training and test sets randomly separated each time I call the GridSearchCV?
Just a note, I used the following classifiers: Logistic Regression, KNN, SVC, Kernel SVC, Random Forest, and had the same observation regardless of the classifiers.
Thank you very much! Raga
_______________________________________________ scikit-learn mailing list scikit-learn@python.org https://mail.python.org/mailman/listinfo/scikit-learn