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_splits param при создании кросс-валидатора.

Параметры:
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 в целое число.