Отличительные показатели последней стратифицированной 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%). Почему это происходит?

Спасибо.


person Chris Parry    schedule 04.05.2017    source источник
comment
понизить скорость обучения, возможно.   -  person Ubdus Samad    schedule 04.05.2017


Ответы (1)


Оказывается, StratifiedKFold по умолчанию не перемешивает данные. Поэтому мне нужно было установить для параметра перемешивания значение True:

n_folds = 10
skf = list(StratifiedKFold(y, n_folds, shuffle=True, random_state=SEED)) 
person Chris Parry    schedule 04.05.2017