Вы можете выбрать n_splits
таким образом, чтобы набор тестов содержал то, что вы хотите.
Подобная идея используется в моем другом ответе здесь: -
Предположим, что у вас есть 6 образцов:
import numpy as np
X = np.array([1,2,3,4,5,6,7]()
# Here put the number you want in test data,
# I used 1 because your example has only 1 test data in each split
num_in_test = 1
test_size = float(num_in_test) / len(X)
n_splits = int((1//test_size)-1)
tscv = TimeSeriesSplit(n_splits=n_splits)
for train_index, test_index in tscv.split(X):
print(X[train_index], X[test_index])
# Output
(array([1]), array([2]))
(array([1, 2]), array([3]))
(array([1, 2, 3]), array([4]))
(array([1, 2, 3, 4]), array([5]))
(array([1, 2, 3, 4, 5]), array([6]))
(array([1, 2, 3, 4, 5, 6]), array([7]))
После исправления n_splits вы можете легко передать объект TimeSeriesSplit в GridSearchCV или любую другую утилиту.