StratifiedGroupKFold
- classsklearn.model_selection.StratifiedGroupKFold(n_splits=5, shuffle=False, random_state=None)[source]
-
Вариант итератора Stratified K-Fold с непересекающимися группами.
Этот объект кросс-валидации является вариантом StratifiedKFold и пытается вернуть стратифицированные фолды с непересекающимися группами. ФОлды создаются путём сохранения процента выборок для каждого класса.
Каждая группа появится ровно один раз в тестовом наборе во всех фолдах (количество различных групп должно быть как минимум равно количеству фолдов).
Разница между
GroupKFoldиStratifiedGroupKFoldзаключается в том, что первый пытается создать сбалансированные фолды, такие что число различных групп примерно одинаковое в каждом фолде, аStratifiedGroupKFoldпытается создать фолды, которые сохраняют процент выборок для каждого класса как можно лучше, учитывая ограничение непересекающихся групп между разбиениями.Подробнее см. в Руководстве пользователя.
Для визуализации поведения кросс-валидации и сравнения между общими методами разделения scikit-learn см. Визуализация поведения кросс-валидации в scikit-learn
- Параметры:
-
- n_splitsint, по умолчанию=5
-
Количество фолдов. Должно быть как минимум 2.
- shufflebool, по умолчанию=False
-
Перемешать ли выборки каждого класса перед разделением на пакеты. Обратите внимание, что выборки внутри каждого разбиения не будут перемешиваться. Эта реализация может перемешивать только группы, которые имеют примерно такое же распределение y, глобальное перемешивание не будет выполнено.
- random_stateint или RandomState instance, по умолчанию=None
-
Если
shuffleимеет значение True,random_stateвлияет на порядок индексов, что контролирует случайность каждого фолда для каждого класса. В противном случае оставьтеrandom_stateкакNone. Передайте целое число для воспроизводимого результата при нескольких вызовах функций. См. Словарь.
См. также
StratifiedKFold-
Учитывает информацию о классе для построения фолдов, которые сохраняют распределения классов (для задач бинарной или многоклассовой классификации).
GroupKFold-
Вариант итератора K-fold с непересекающимися группами.
Замечания
Реализация разработана для:
- Имитировать поведение StratifiedKFold как можно лучше для тривиальных групп (например, когда каждая группа содержит только одну выборку).
- Не зависеть от метки класса: переименование
y = ["Happy", "Sad"]вy = [1, 0]не должно изменять сгенерированные индексы. - Стратифицировать выборки по возможности, сохраняя ограничение непересекающихся групп. Это означает, что в некоторых случаях, когда есть небольшое количество групп, содержащих большое количество выборок, стратификация невозможна, и поведение будет близким к GroupKFold.
Примеры
>>> import numpy as np >>> from sklearn.model_selection import StratifiedGroupKFold >>> X = np.ones((17, 2)) >>> y = np.array([0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>> groups = np.array([1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 5, 5, 6, 6, 7, 8, 8]) >>> sgkf = StratifiedGroupKFold(n_splits=3) >>> sgkf.get_n_splits(X, y) 3 >>> print(sgkf) StratifiedGroupKFold(n_splits=3, random_state=None, shuffle=False) >>> for i, (train_index, test_index) in enumerate(sgkf.split(X, y, groups)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}") ... print(f" group={groups[train_index]}") ... print(f" Test: index={test_index}") ... print(f" group={groups[test_index]}") Fold 0: Train: index=[ 0 1 2 3 7 8 9 10 11 15 16] group=[1 1 2 2 4 5 5 5 5 8 8] Test: index=[ 4 5 6 12 13 14] group=[3 3 3 6 6 7] Fold 1: Train: index=[ 4 5 6 7 8 9 10 11 12 13 14] group=[3 3 3 4 5 5 5 5 6 6 7] Test: index=[ 0 1 2 3 15 16] group=[1 1 2 2 8 8] Fold 2: Train: index=[ 0 1 2 3 4 5 6 12 13 14 15 16] group=[1 1 2 2 3 3 3 6 6 7 8 8] Test: index=[ 7 8 9 10 11] group=[4 5 5 5 5]- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestописывает информацию о маршрутизации.
- get_n_splits(X=None, y=None, groups=None)[source]
-
Возвращает количество итераций разделения в кросс-валидаторе.
- Параметры:
-
- Xobject
-
Всегда игнорируется, существует для совместимости.
- yobject
-
Всегда игнорируется, существует для совместимости.
- groupsobject
-
Всегда игнорируется, существует для совместимости.
- Возвращает:
-
- n_splitsint
-
Возвращает количество итераций разделения в кросс-валидаторе.
- set_split_request(*, groups:bool|None|str='$UNCHANGED$') StratifiedGroupKFold[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, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
groupsвsplit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- split(X, y=None, groups=None)[source]
-
Генерация индексов для разделения данных на обучающую и тестовую выборки.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Обучающие данные, где
n_samples— количество образцов, аn_features— количество признаков. - yarray-like формы (n_samples,), по умолчанию=None
-
Целевая переменная для задач контролируемого обучения.
- groupsarray-like формы (n_samples,), по умолчанию=None
-
Метки групп образцов, используемые при разделении набора данных на обучающую и тестовую выборки.
- Возвращаемые значения:
-
- trainndarray
-
Индексы обучающей выборки для данного разделения.
- testndarray
-
Индексы тестовой выборки для данного разделения.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.StratifiedGroupKFold.html