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в целое число.
Примеры галереи
© 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