GroupShuffleSplit#
- класс sklearn.model_selection.GroupShuffleSplit(n_splits=5, *, test_size=None, train_size=None, random_state=None)[источник]#
Итератор перекрестной проверки Shuffle-Group(s)-Out.
Предоставляет рандомизированные индексы обучающей/тестовой выборок для разделения данных в соответствии с группой, предоставленной третьей стороной. Эта информация о группе может использоваться для кодирования произвольных доменно-специфических стратификаций образцов в виде целых чисел.
Например, группы могут представлять год сбора образцов и таким образом позволять кросс-валидацию с разбиением по времени.
Разница между
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 или None, по умолчанию=None
Управляет случайностью генерируемых индексов обучения и тестирования. Передайте целое число для воспроизводимого результата при множественных вызовах функции. См. Глоссарий.
Смотрите также
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]
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_n_splits(X=None, y=None, группы=None)[источник]#
Возвращает количество итераций разделения, установленное с помощью
n_splitsparam при создании кросс-валидатора.- Параметры:
- Xмассивоподобный объект формы (n_samples, n_features), по умолчанию=None
Всегда игнорируется, существует для совместимости API.
- yarray-like формы (n_samples,), по умолчанию=None
Всегда игнорируется, существует для совместимости API.
- группыarray-like формы (n_samples,), по умолчанию=None
Всегда игнорируется, существует для совместимости API.
- Возвращает:
- n_splitsint
Возвращает количество итераций разделения в кросс-валидаторе.
- set_split_request(*, группы: 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.
- Параметры:
- группыstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
groupsпараметр вsplit.
- Возвращает:
- selfobject
Обновленный объект.
- split(X, y=None, группы=None)[источник]#
Сгенерировать индексы для разделения данных на обучающую и тестовую выборки.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Обучающие данные, где
n_samplesэто количество образцов иn_featuresэто количество признаков.- yarray-like формы (n_samples,), по умолчанию=None
Целевая переменная для задач обучения с учителем.
- группыarray-like формы (n_samples,)
Метки групп для образцов, используемых при разделении набора данных на обучающую/тестовую выборки.
- Возвращает:
- обучатьndarray
Индексы обучающей выборки для этого разбиения.
- тестndarray
Индексы тестового набора для этого разбиения.
Примечания
Рандомизированные сплиттеры CV могут возвращать разные результаты для каждого вызова split. Вы можете сделать результаты идентичными, установив
random_stateв целое число.
Примеры галереи#
Визуализация поведения кросс-валидации в scikit-learn