Spec-Zone.ru › scikit-learn

GroupKFold

classsklearn.model_selection.GroupKFold(n_splits=5, *, shuffle=False, random_state=None)[source]

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

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

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

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

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

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

Количество разбиений. Должно быть не менее 2.

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

shufflebool, по умолчанию=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(X, y, groups)
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]
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$') → GroupKFold[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, or None, default=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

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

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

Основные моменты выпуска scikit-learn 1.4

Визуализация поведения перекрестной проверки в 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.GroupKFold.html

Spec-Zone.ru

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