Spec-Zone.ru › scikit-learn

ShuffleSplit

classsklearn.model_selection.ShuffleSplit(n_splits=10, *, test_size=None, train_size=None, random_state=None)[исходный код]

Кросс-валидатор со случайной перестановкой.

Возвращает индексы для разделения данных на обучающую и тестовую выборки.

Примечание: в отличие от других стратегий кросс-валидации, случайные разбиения не гарантируют, что тестовые выборки во всех фолдах будут взаимно исключающими, и могут содержать пересекающиеся образцы. Однако для достаточно больших наборов данных это всё же маловероятно.

Подробнее см. в руководстве пользователя.

Визуализацию поведения кросс-валидации и сравнение распространённых методов разделения scikit-learn см. в разделе Визуализация поведения кросс-валидации в scikit-learn

Параметры:
n_splitsint, default=10

Количество итераций перемешивания и разбиения.

test_sizefloat or int, default=None

Если задано значение float, оно должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю набора данных, включаемую в тестовую выборку. Если задано значение int, оно обозначает абсолютное количество тестовых образцов. Если задано None, значение определяется как дополнение до размера обучающей выборки. Если train_size также равно None, будет установлено значение 0.1.

train_sizefloat or int, default=None

Если задано значение float, оно должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю набора данных, включаемую в обучающую выборку. Если задано значение int, оно обозначает абсолютное количество обучающих образцов. Если задано None, значение автоматически определяется как дополнение до размера тестовой выборки.

random_stateint, RandomState instance or None, default=None

Определяет случайность формируемых индексов обучающих и тестовых выборок. Передайте int, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.

Примеры

>>> import numpy as np
>>> from sklearn.model_selection import ShuffleSplit
>>> X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [3, 4], [5, 6]])
>>> y = np.array([1, 2, 1, 2, 1, 2])
>>> rs = ShuffleSplit(n_splits=5, test_size=.25, random_state=0)
>>> rs.get_n_splits()
5
>>> print(rs)
ShuffleSplit(n_splits=5, random_state=0, test_size=0.25, train_size=None)
>>> for i, (train_index, test_index) in enumerate(rs.split(X)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[1 3 0 4]
  Test:  index=[5 2]
Fold 1:
  Train: index=[4 0 2 5]
  Test:  index=[1 3]
Fold 2:
  Train: index=[1 2 4 0]
  Test:  index=[3 5]
Fold 3:
  Train: index=[3 4 1 0]
  Test:  index=[5 2]
Fold 4:
  Train: index=[3 5 1 0]
  Test:  index=[2 4]
>>> # Specify train and test size
>>> rs = ShuffleSplit(n_splits=5, train_size=0.5, test_size=.25,
...                   random_state=0)
>>> for i, (train_index, test_index) in enumerate(rs.split(X)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[1 3 0]
  Test:  index=[5 2]
Fold 1:
  Train: index=[4 0 2]
  Test:  index=[1 3]
Fold 2:
  Train: index=[1 2 4]
  Test:  index=[3 5]
Fold 3:
  Train: index=[3 4 1]
  Test:  index=[5 2]
Fold 4:
  Train: index=[3 5 1]
  Test:  index=[2 4]
get_metadata_routing()[исходный код]

Получить маршрутизацию метаданных этого объекта.

О том, как работает механизм маршрутизации, см. в руководстве пользователя.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий информацию о маршрутизации.

get_n_splits(X=None, y=None, groups=None)[исходный код]

Возвращает количество итераций разбиения, заданное параметром n_splits при создании кросс-валидатора.

Параметры:
Xarray-like of shape (n_samples, n_features), default=None

Всегда игнорируется; параметр существует для совместимости с API.

yarray-like of shape (n_samples,), default=None

Всегда игнорируется; параметр существует для совместимости с API.

groupsarray-like of shape (n_samples,), default=None

Всегда игнорируется; параметр существует для совместимости с API.

Возвращает:
n_splitsint

Возвращает количество итераций разбиения в кросс-валидаторе.

split(X, y=None, groups=None)[исходный код]

Создать индексы для разделения данных на обучающую и тестовую выборки.

Параметры:
Xarray-like of shape (n_samples, n_features)

Обучающие данные, где n_samples — количество образцов, а n_features — количество признаков.

yarray-like of shape (n_samples,), default=None

Целевая переменная для задач обучения с учителем.

groupsarray-like of shape (n_samples,), default=None

Всегда игнорируется; параметр существует для совместимости с API.

Возвращает:
trainndarray

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

testndarray

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

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

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

Балансировка сложности модели и оценки кросс-валидации

Построение кривых обучения и проверка масштабируемости моделей

Масштабирование параметра регуляризации для SVC

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.ShuffleSplit.html

Spec-Zone.ru

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