Метод Split в TimeSeriesSplit
генерирует разделение индексов. Чтобы перейти к конкретному расколу, вам нужно выполнить итерацию до него. Он предназначен для перебора всех возможных разбиений для перекрестной проверки временных рядов.
Если размер тестовых данных в cv split равен s
. Затем, независимо от того, сколько разбиений вы сделаете, последнее разбиение устанавливает train_data
= all data except last s data point
и test_data as last s data points
. Итак, если вы хотите напрямую выполнить последнее разделение: нарежьте свои данные. Например, если ваши данные представляют собой массив numpy X
:
import numpy as np
from sklearn.model_selection import TimeSeriesSplit
X = np.array([[1, 2], [0, 4], [1, 2], [2, 4] ,[1, 2], [7, 4], [8, 2], [5, 4]])
n_splits = 2 # select no of splits required
tscv = TimeSeriesSplit(n_splits = n_splits)
n_samples = X.shape[0] # this is how test_size (s)
s = n_samples//(n_splits + 1) # is evaluated internally
X_train_last, X_test_last = X[ :-s], X[-s: ] # s=2 for this split
X_train_last
# array([[1, 2],
# [0, 4],
# [1, 2],
# [2, 4],
# [1, 2],
# [7, 4]])
X_test_last
# array([[8, 2],
# [5, 4]])
Также, если вы установили "max_train_size" при разделении. Тогда вам нужно позаботиться и об этом во время нарезки. Подробнее см. здесь в документации TimeSeriesSplit. Em >
person
Mankind_008
schedule
01.07.2018