GroupShuffleSplit
- classsklearn.model_selection.GroupShuffleSplit(n_splits=5, *, test_size=None, train_size=None, random_state=None)[исходный код]
-
Итератор перекрёстной проверки с перемешиванием и исключением групп.
Предоставляет случайные индексы обучающей и тестовой выборок для разделения данных по группам, заданным пользователем. Эти сведения о группах можно использовать для кодирования произвольных предметно-ориентированных группировок образцов в виде целых чисел.
Например, в качестве групп можно использовать год сбора образцов, что позволяет выполнять перекрёстную проверку с разделением по времени.
Разница между
LeavePGroupsOutиGroupShuffleSplitсостоит в том, что первый метод создаёт разбиения, используя все подмножества изpуникальных групп, тогда какGroupShuffleSplitсоздаёт заданное пользователем число случайных тестовых разбиений, каждое из которых содержит заданную пользователем долю уникальных групп.Например, менее затратной с вычислительной точки зрения альтернативой
LeavePGroupsOut(p=10)будетGroupShuffleSplit(test_size=10, n_splits=100).В отличие от других стратегий перекрёстной проверки, случайные разбиения не гарантируют взаимную непересекаемость тестовых наборов во всех фолдах: наборы могут включать одни и те же образцы. Однако на достаточно больших наборах данных это маловероятно.
Примечание. Параметры
test_sizeиtrain_sizeотносятся к группам, а не к образцам, как вShuffleSplit.Подробнее см. в руководстве пользователя.
Чтобы посмотреть визуализацию поведения перекрёстной проверки и сравнить распространённые методы разбиения scikit-learn, обратитесь к разделу Визуализация поведения перекрёстной проверки в scikit-learn
- Параметры:
-
- n_splitsint, default=5
-
Число итераций перемешивания и разбиения.
- test_sizefloat, int, default=None
-
Если задано значение типа float, оно должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю групп, включаемых в тестовую выборку (с округлением вверх). Если задано значение типа int, оно обозначает абсолютное число тестовых групп. Если значение равно None, оно устанавливается как дополнение до размера обучающей выборки. Если
train_sizeтакже равно None, будет установлено значение 0.2. - train_sizefloat or int, default=None
-
Если задано значение типа float, оно должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю групп, включаемых в обучающую выборку. Если задано значение типа int, оно обозначает абсолютное число обучающих групп. Если значение равно None, оно автоматически устанавливается как дополнение до размера тестовой выборки.
- random_stateint, RandomState instance or None, default=None
-
Управляет случайностью создаваемых индексов обучающей и тестовой выборок. Передайте значение типа int, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.
См. также
ShuffleSplit-
Перемешивает образцы для создания независимых обучающих и тестовых выборок.
LeavePGroupsOut-
Обучающая выборка исключает все возможные подмножества из
pгрупп.
Примеры
>>> import numpy as np >>> from sklearn.model_selection import GroupShuffleSplit >>> X = np.ones(shape=(8, 2)) >>> y = np.ones(shape=(8, 1)) >>> groups = np.array([1, 1, 2, 2, 2, 3, 3, 3]) >>> print(groups.shape) (8,) >>> gss = GroupShuffleSplit(n_splits=2, train_size=.7, random_state=42) >>> gss.get_n_splits() 2 >>> print(gss) GroupShuffleSplit(n_splits=2, random_state=42, test_size=None, train_size=0.7) >>> for i, (train_index, test_index) in enumerate(gss.split(X, y, groups)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}, group={groups[train_index]}") ... print(f" Test: index={test_index}, group={groups[test_index]}") Fold 0: Train: index=[2 3 4 5 6 7], group=[2 2 2 3 3 3] Test: index=[0 1], group=[1 1] Fold 1: Train: index=[0 1 5 6 7], group=[1 1 3 3 3] Test: index=[2 3 4], group=[2 2 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
-
Возвращает число итераций разбиения в объекте перекрёстной проверки.
- set_split_request(*, groups:bool|None|str='$UNCHANGED$') GroupShuffleSplit[исходный код]
-
Настраивает запрос на передачу метаданных методу
split.Обратите внимание, что этот метод актуален только тогда, когда данный оцениватель используется как подоцениватель внутри метаоценивателя и включена маршрутизация метаданных с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вsplit, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и метаоцениватель не передаёт их вsplit. -
None: метаданные не запрашиваются; если пользователь предоставит их, метаоцениватель вызовет ошибку. -
str: метаданные передаются метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет текущий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- groupsstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
groupsметодаsplit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- 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,)
-
Метки групп образцов, используемые при разделении набора данных на обучающую и тестовую выборки.
- Генерирует:
-
- 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.GroupShuffleSplit.html