GroupShuffleSplit
- classsklearn.model_selection.GroupShuffleSplit(n_splits=5, *, test_size=None, train_size=None, random_state=None)[source]
-
Итератор перетасовки групп для кросс-валидации.
Предоставляет случайные индексы для разделения данных согласно предоставленной третьей стороной группе. Эта информация о группе может быть использована для кодирования произвольных стратификаций образцов в виде целых чисел, специфичных для конкретной области.
Например, группы могут представлять год сбора образцов, позволяя проводить кросс-валидацию по временным разделам.
Разница между
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, по умолчанию=5
-
Количество итераций повторной перетасовки и разделения.
- test_sizefloat, int, по умолчанию=None
-
Если float, должно быть от 0,0 до 1,0 и представлять долю групп для включения в тестовое разбиение (округляется вверх). Если int, представляет абсолютное количество тестовых групп. Если None, значение устанавливается как дополнение к размеру обучающей выборки. Если
train_sizeтакже None, оно будет установлено в 0,2. - train_sizefloat или int, по умолчанию=None
-
Если float, должно быть от 0,0 до 1,0 и представлять долю групп для включения в обучающее разбиение. Если int, представляет абсолютное количество обучающих групп. Если None, значение автоматически устанавливается как дополнение к размеру тестовой выборки.
- random_stateint, RandomState instance или None, по умолчанию=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()[source]
-
Получение маршрутизации метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequestс информацией о маршрутизации.
- get_n_splits(X=None, y=None, groups=None)[source]
-
Возвращает количество итераций разделения в кросс-валидаторе.
- Параметры:
-
- Xобъект
-
Всегда игнорируется, существует для совместимости.
- yобъект
-
Всегда игнорируется, существует для совместимости.
- groupsобъект
-
Всегда игнорируется, существует для совместимости.
- Возвращает:
-
- n_splitsint
-
Возвращает количество итераций разделения в кросс-валидаторе.
- set_split_request(*, groups:bool|None|str='$UNCHANGED$') GroupShuffleSplit[source]
-
Запрос метаданных, передаваемых методу
split.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя, чтобы понять, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяsplitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихsplit. -
None: метаданные не запрашиваются, и мета-оценщик вызовет ошибку, если пользователь предоставит их. -
str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если этот оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Параметры:
-
- groupsstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
groupsвsplit.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- split(X, y=None, groups=None)[source]
-
Генерация индексов для разделения данных на обучающий и тестовый наборы.
- Параметры:
-
- Xмассив-подобный (n_samples, n_features)
-
Обучающие данные, где
n_samples— количество образцов, аn_features— количество признаков. - yмассив-подобный (n_samples,), по умолчанию=None
-
Целевая переменная для задач обучения с учителем.
- groupsмассив-подобный (n_samples,)
-
Метки групп для образцов, используемые при разделении набора данных на обучающую и тестовую выборки.
- Возвращает:
-
- trainndarray
-
Индексы обучающей выборки для данного разбиения.
- testndarray
-
Индексы тестовой выборки для данного разбиения.
Примечания
Случайные разбиения набора данных (CV) могут возвращать разные результаты для каждого вызова split. Вы можете сделать результаты идентичными, установив
random_stateв целое число.
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.GroupShuffleSplit.html