Spec-Zone.ru › scikit-learn

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

MetadataRequest encapsulating 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

Индексы тестовой выборки для данного разбиения.

Примеры из галереи

Особенности деревьев градиентного бустинга с гистограммами

Запаздывающие признаки для прогнозирования временных рядов

Инженерия признаков, связанных со временем

Модели на основе l1 для разреженных сигналов

Визуализация поведения перекрестной проверки в scikit-learn

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API