GroupKFold#

класс sklearn.model_selection.GroupKFold(n_splits=5, *, перемешивание=False, random_state=None)[источник]#

Вариант итератора K-кратной перекрёстной проверки с непересекающимися группами.

Каждая группа появится ровно один раз в тестовом наборе по всем фолдам (количество различных групп должно быть не меньше количества фолдов).

Склады приблизительно сбалансированы в том смысле, что количество выборок примерно одинаково в каждом тестовом сгибе, когда shuffle равно True.

Подробнее в Руководство пользователя.

Для визуализации поведения перекрёстной проверки и сравнения общих методов разделения scikit-learn обратитесь к Визуализация поведения кросс-валидации в scikit-learn

Параметры:
n_splitsint, по умолчанию=5

Количество фолдов. Должно быть не менее 2.

Изменено в версии 0.22: n_splits значение по умолчанию изменено с 3 на 5.

перемешиваниеbool, по умолчанию=False

Перемешивать ли группы перед разделением на пакеты. Обратите внимание, что выборки внутри каждого разбиения не будут перемешиваться.

Добавлено в версии 1.6.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Когда shuffle равно True, random_state влияет на порядок индексов, что контролирует случайность каждого сгиба. В противном случае этот параметр не оказывает эффекта. Передайте целое число для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.

Добавлено в версии 1.6.

Смотрите также

LeaveOneGroupOut

Для разделения данных в соответствии с явной предметно-ориентированной стратификацией набора данных.

StratifiedKFold

Учитывает информацию о классах, чтобы избежать создания фолдов с несбалансированными пропорциями классов (для задач бинарной или многоклассовой классификации).

Примечания

Группы появляются в произвольном порядке по всем фолдам.

Примеры

>>> import numpy as np
>>> from sklearn.model_selection import GroupKFold
>>> X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> groups = np.array([0, 0, 2, 2, 3, 3])
>>> group_kfold = GroupKFold(n_splits=2)
>>> group_kfold.get_n_splits()
2
>>> print(group_kfold)
GroupKFold(n_splits=2, random_state=None, shuffle=False)
>>> for i, (train_index, test_index) in enumerate(group_kfold.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], group=[2 2]
  Test:  index=[0 1 4 5], group=[0 0 3 3]
Fold 1:
  Train: index=[0 1 4 5], group=[0 0 3 3]
  Test:  index=[2 3], group=[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$') GroupKFold[источник]#

Настроить, следует ли запрашивать передачу метаданных в 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

Индексы тестового набора для этого разбиения.