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целое число.
Примеры из галереи
© 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