Spec-Zone.ru › scikit-learn

StratifiedKFold

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

Стратифицированный K-Fold перекрестный валидатор.

Обеспечивает индексы для разделения данных на обучающую и тестовую выборки.

Этот объект перекрестной проверки является вариацией KFold, которая возвращает стратифицированные слои. Слои создаются путём сохранения процента выборок для каждого класса.

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

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

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

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

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

shufflebool, по умолчанию=False

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

random_stateint, RandomState instance или None, по умолчанию=None

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

См. также

RepeatedStratifiedKFold

Повторяет Stratified K-Fold n раз.

Примечания

Реализация разработана для:

  • Генерации тестовых наборов, в которых все содержат одинаковое распределение классов или как можно ближе к нему.
  • Не зависеть от метки класса: переименование y = ["Happy", "Sad"] в y = [1, 0] не должно изменять сгенерированные индексы.
  • Сохранять зависимости порядка в порядке данных, когда shuffle=False: все образцы из класса k в некотором тестовом наборе были сопутствующими в y или разделенными в y образцами из классов, отличных от k.
  • Генерации тестовых наборов, в которых наименьшее и наибольшее значения различаются не более чем на один образец.

Изменено в версии 0.22: Предыдущая реализация не удовлетворяла последнему ограничению.

Примеры

>>> import numpy as np
>>> from sklearn.model_selection import StratifiedKFold
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([0, 0, 1, 1])
>>> skf = StratifiedKFold(n_splits=2)
>>> skf.get_n_splits(X, y)
2
>>> print(skf)
StratifiedKFold(n_splits=2, random_state=None, shuffle=False)
>>> for i, (train_index, test_index) in enumerate(skf.split(X, y)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[1 3]
  Test:  index=[0 2]
Fold 1:
  Train: index=[0 2]
  Test:  index=[1 3]
get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий информацию о маршрутизации.

get_n_splits(X=None, y=None, groups=None)[source]

Возвращает количество итераций разделения в перекрестном валидаторе.

Параметры:
Xобъект

Всегда игнорируется, существует для совместимости.

yобъект

Всегда игнорируется, существует для совместимости.

groupsобъект

Всегда игнорируется, существует для совместимости.

Возвращает:
n_splitsint

Возвращает количество итераций разделения в перекрестном валидаторе.

split(X, y, groups=None)[source]

Генерировать индексы для разделения данных на обучающую и тестовую выборки.

Параметры:
Xarray-like of shape (n_samples, n_features)

Обучающие данные, где n_samples — количество образцов, а n_features — количество признаков.

Обратите внимание, что предоставление y достаточно для генерации разделов, и поэтому np.zeros(n_samples) может использоваться как плейсхолдер для X вместо фактических обучающих данных.

yarray-like of shape (n_samples,)

Целевая переменная для задач обучения с учителем. Стратификация выполняется на основе меток y.

groupsобъект

Всегда игнорируется, существует для совместимости.

Возвращает:
trainndarray

Индексы обучающей выборки для данного разделения.

testndarray

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

Примечания

Случайные разделители CV могут возвращать разные результаты при каждом вызове split. Вы можете сделать результаты идентичными, установив random_state в целое число.

END_OF_DOCUMENT_MARKER

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

Рекурсивное устранение признаков с перекрестной проверкой

Ковариации GMM

Кривая ROC (Receiver Operating Characteristic) с перекрестной проверкой

Проверка значимости классификационного результата с помощью перестановок

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

Spec-Zone.ru

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