Spec-Zone.ru › scikit-learn

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

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

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

© 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

Spec-Zone.ru

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