Spec-Zone.ru › scikit-learn

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 в целое число.

Примеры галереи

Визуализация поведения перекрестной проверки в scikit-learn

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API