TimeSeriesSplit
- classsklearn.model_selection.TimeSeriesSplit(n_splits=5, *, max_train_size=None, test_size=None, gap=0)[source]
-
Валидатор по временным рядам.
Обеспечивает индексы для разделения выборок временных рядов, которые наблюдаются через фиксированные временные интервалы, на обучающие и тестовые подмножества. В каждом разбиении индексы теста должны быть больше предыдущих, поэтому перемешивание в валидаторе нецелесообразно.
Этот объект кросс-валидации является вариацией
KFold. В k-ом разбиении он возвращает первые k фолды как обучающую выборку и (k+1)-ую фолду как тестовую.Обратите внимание, что в отличие от стандартных методов кросс-валидации, последующие обучающие множества являются надмножествами предыдущих.
Подробнее см. в Руководстве пользователя.
Для визуализации поведения кросс-валидации и сравнения между общими методами разделения scikit-learn см. Визуализация поведения кросс-валидации в scikit-learn
Добавлен в версии 0.18.
- Параметры:
-
- n_splitsint, по умолчанию=5
-
Количество разбиений. Должно быть не меньше 2.
Изменено в версии 0.22:
n_splitsзначение по умолчанию изменено с 3 на 5. - max_train_sizeint, по умолчанию=None
-
Максимальный размер для одного обучающего набора.
- test_sizeint, по умолчанию=None
-
Используется для ограничения размера тестового набора. По умолчанию
n_samples // (n_splits + 1), что является максимальным разрешённым значением сgap=0.Добавлен в версии 0.24.
- gapint, по умолчанию=0
-
Количество выборок, исключаемых из конца каждого обучающего набора перед тестовым набором.
Добавлен в версии 0.24.
Примечания
Обучающий набор имеет размер
i * n_samples // (n_splits + 1) + n_samples % (n_splits + 1)вi-ом разбиении, с тестовым набором размеромn_samples//(n_splits + 1)по умолчанию, гдеn_samples- количество выборок. Обратите внимание, что эта формула верна только приtest_sizeиmax_train_sizeоставлены со своими значениями по умолчанию.Примеры
>>> import numpy as np >>> from sklearn.model_selection import TimeSeriesSplit >>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]]) >>> y = np.array([1, 2, 3, 4, 5, 6]) >>> tscv = TimeSeriesSplit() >>> print(tscv) TimeSeriesSplit(gap=0, max_train_size=None, n_splits=5, test_size=None) >>> for i, (train_index, test_index) in enumerate(tscv.split(X)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}") ... print(f" Test: index={test_index}") Fold 0: Train: index=[0] Test: index=[1] Fold 1: Train: index=[0 1] Test: index=[2] Fold 2: Train: index=[0 1 2] Test: index=[3] Fold 3: Train: index=[0 1 2 3] Test: index=[4] Fold 4: Train: index=[0 1 2 3 4] Test: index=[5] >>> # Fix test_size to 2 with 12 samples >>> X = np.random.randn(12, 2) >>> y = np.random.randint(0, 2, 12) >>> tscv = TimeSeriesSplit(n_splits=3, test_size=2) >>> for i, (train_index, test_index) in enumerate(tscv.split(X)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}") ... print(f" Test: index={test_index}") Fold 0: Train: index=[0 1 2 3 4 5] Test: index=[6 7] Fold 1: Train: index=[0 1 2 3 4 5 6 7] Test: index=[8 9] Fold 2: Train: index=[0 1 2 3 4 5 6 7 8 9] Test: index=[10 11] >>> # Add in a 2 period gap >>> tscv = TimeSeriesSplit(n_splits=3, test_size=2, gap=2) >>> for i, (train_index, test_index) in enumerate(tscv.split(X)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}") ... print(f" Test: index={test_index}") Fold 0: Train: index=[0 1 2 3] Test: index=[6 7] Fold 1: Train: index=[0 1 2 3 4 5] Test: index=[8 9] Fold 2: Train: index=[0 1 2 3 4 5 6 7] Test: index=[10 11]Более подробный пример см. в Инженерии функций, связанных со временем.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных для этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestencapsulating routing information.
- get_n_splits(X=None, y=None, groups=None)[source]
-
Возвращает количество итераций разделения в кросс-валидаторе.
- Параметры:
-
- Xобъект
-
Всегда игнорируется, существует для совместимости.
- yобъект
-
Всегда игнорируется, существует для совместимости.
- groupsобъект
-
Всегда игнорируется, существует для совместимости.
- Возвращает:
-
- n_splitsint
-
Возвращает количество итераций разделения в кросс-валидаторе.
- split(X, y=None, groups=None)[source]
-
Генерация индексов для разделения данных на обучающую и тестовую выборки.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Обучающие данные, где
n_samples- количество выборок, аn_features- количество признаков. - yarray-like of shape (n_samples,)
-
Всегда игнорируется, существует для совместимости.
- groupsarray-like of shape (n_samples,)
-
Всегда игнорируется, существует для совместимости.
- Выходные данные:
-
- trainndarray
-
Индексы обучающей выборки для данного разбиения.
- testndarray
-
Индексы тестовой выборки для данного разбиения.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.TimeSeriesSplit.html