GroupKFold
- classsklearn.model_selection.GroupKFold(n_splits=5, *, shuffle=False, random_state=None)[исходный код]
-
Вариант итератора 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влияет на порядок индексов, определяя случайность каждого фолда. В противном случае этот параметр не действует. Укажите int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.Добавлено в версии 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]- get_metadata_routing()[исходный код]
-
Получить маршрутизацию метаданных этого объекта.
Описание работы механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_n_splits(X=None, y=None, groups=None)[исходный код]
-
Возвращает число итераций разбиения, заданное параметром
n_splitsпри создании объекта для кросс-валидации.- Параметры:
-
- Xarray-like формы (n_samples, n_features), по умолчанию=None
-
Всегда игнорируется; параметр существует для совместимости с API.
- yarray-like формы (n_samples,), по умолчанию=None
-
Всегда игнорируется; параметр существует для совместимости с API.
- groupsarray-like формы (n_samples,), по умолчанию=None
-
Всегда игнорируется; параметр существует для совместимости с API.
- Возвращает:
-
- n_splitsint
-
Возвращает число итераций разбиения в объекте для кросс-валидации.
- set_split_request(*, groups: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.
- Параметры:
-
- groupsstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
groupsвsplit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- split(X, y=None, groups=None)[исходный код]
-
Создать индексы для разбиения данных на обучающую и тестовую выборки.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Обучающие данные, где
n_samples— число образцов, аn_features— число признаков. - yarray-like формы (n_samples,), по умолчанию=None
-
Целевая переменная для задач обучения с учителем.
- groupsarray-like формы (n_samples,)
-
Метки групп образцов, используемые при разбиении набора данных на обучающую и тестовую выборки.
- Генерирует:
-
- trainndarray
-
Индексы обучающей выборки для данного разбиения.
- testndarray
-
Индексы тестовой выборки для данного разбиения.
Примеры в галерее
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.GroupKFold.html