Как уже указывалось в комментариях, размер вашего обучающего набора будет (n_splits-1)/n_splits
, а размер вашего проверочного набора будет 1/n_splits
от размера ваших исходных данных, то есть здесь 4/5 и 1/5 соответственно.
Вот простая воспроизводимая демонстрация с использованием данных диафрагмы и n_splits=5
, как в вашем случае:
import numpy as np
from sklearn.model_selection import StratifiedKFold
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
print(X.shape) # initial dataset size
# (150, 4)
kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=8)
for train, validation in kfold.split(X, y):
print(X[train].shape, X[validation].shape)
Результат, который составляет:
(120, 4) (30, 4)
(120, 4) (30, 4)
(120, 4) (30, 4)
(120, 4) (30, 4)
(120, 4) (30, 4)
Поэтому, чтобы проверить себя в своих данных, вам просто нужно добавить приведенный выше оператор print
в цикл for.