Spec-Zone.ru › scikit-learn

StratifiedShuffleSplit

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

Кросс-валидатор ShuffleSplit со стратификацией по классам.

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

Этот объект перекрёстной проверки объединяет StratifiedKFold и ShuffleSplit и возвращает стратифицированные случайные фолды. Фолды формируются с сохранением процентной доли образцов каждого класса в y при бинарной классификации или классификации с несколькими классами.

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

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

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

Примечание

Стратификация по меткам классов решает скорее инженерную, а не статистическую задачу. Подробнее см. в разделе Итераторы перекрёстной проверки со стратификацией по меткам классов.

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

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

test_sizefloat or int, default=None

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

train_sizefloat or int, default=None

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

random_stateint, RandomState instance or None, default=None

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

Примеры

>>> import numpy as np
>>> from sklearn.model_selection import StratifiedShuffleSplit
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([0, 0, 0, 1, 1, 1])
>>> sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0)
>>> sss.get_n_splits()
5
>>> print(sss)
StratifiedShuffleSplit(n_splits=5, random_state=0, ...)
>>> for i, (train_index, test_index) in enumerate(sss.split(X, y)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[5 2 3]
  Test:  index=[4 1 0]
Fold 1:
  Train: index=[5 1 4]
  Test:  index=[0 2 3]
Fold 2:
  Train: index=[5 0 2]
  Test:  index=[4 3 1]
Fold 3:
  Train: index=[4 1 0]
  Test:  index=[2 3 5]
Fold 4:
  Train: index=[0 5 1]
  Test:  index=[3 4 2]
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, groups=None)[исходный код]

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

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

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

Обратите внимание: для генерации разбиений достаточно предоставить y, поэтому вместо фактических обучающих данных в качестве заполнителя для X можно использовать np.zeros(n_samples).

yarray-like of shape (n_samples,) or (n_samples, n_labels)

Целевая переменная для задач обучения с учителем. Стратификация выполняется на основе меток y.

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

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

Генерирует:
trainndarray

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

testndarray

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

Примечания

Случайные разбиения для перекрёстной проверки могут давать разные результаты при каждом вызове split. Чтобы результаты были одинаковыми, задайте для random_state целое число.

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

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

Параметры RBF SVM

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

Spec-Zone.ru

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