Spec-Zone.ru › scikit-learn

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

Обновленный объект.

END_OF_DOCUMENT_MARKER
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

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

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

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

Spec-Zone.ru

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