KFold
- classsklearn.model_selection.KFold(n_splits=5, *, shuffle=False, random_state=None)[source]
-
K-Fold перекрестный валидатор.
Обеспечивает индексы для разделения данных на обучающие и тестовые наборы. Разделяет набор данных на k последовательных фолдов (по умолчанию без перемешивания).
Затем каждый фолд используется один раз в качестве валидационного, а оставшиеся k - 1 фолды образуют обучающий набор.
Подробнее см. в Руководстве пользователя.
Для визуализации поведения перекрестной проверки и сравнения между общими методами разделения scikit-learn см. Визуализация поведения перекрестной проверки в scikit-learn
- Параметры:
-
- n_splitsint, по умолчанию=5
-
Количество фолдов. Должно быть не меньше 2.
Изменено в версии 0.22:
n_splitsзначение по умолчанию изменено с 3 на 5. - shufflebool, по умолчанию=False
-
Перемешивать ли данные перед разделением на пакеты. Обратите внимание, что образцы в каждом разбиении не перемешиваются.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Если
shuffleравно True,random_stateвлияет на порядок индексов, что контролирует случайность каждого фолда. В противном случае этот параметр не оказывает никакого влияния. Передайте целое число для воспроизводимого вывода при многократных вызовах функции. См. Глоссарий.
См. также
StratifiedKFold-
Учитывает информацию о классах, чтобы избежать создания фолдов с несбалансированными распределениями классов (для задач бинарной или многоклассовой классификации).
GroupKFold-
Вариант итератора K-fold с неперекрывающимися группами.
RepeatedKFold-
Повторяет K-Fold n раз.
Примечания
Первые
n_samples % n_splitsфолды имеют размерn_samples // n_splits + 1, другие фолды имеют размерn_samples // n_splits, гдеn_samples— количество образцов.Случайные разделители CV могут возвращать разные результаты для каждого вызова split. Вы можете сделать результаты идентичными, установив
random_stateв целое число.Примеры
>>> import numpy as np >>> from sklearn.model_selection import KFold >>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]]) >>> y = np.array([1, 2, 3, 4]) >>> kf = KFold(n_splits=2) >>> kf.get_n_splits(X) 2 >>> print(kf) KFold(n_splits=2, random_state=None, shuffle=False) >>> for i, (train_index, test_index) in enumerate(kf.split(X)): ... print(f"Fold {i}:") ... print(f" Train: index={train_index}") ... print(f" Test: index={test_index}") Fold 0: Train: index=[2 3] Test: index=[0 1] Fold 1: Train: index=[0 1] Test: index=[2 3]- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
См. Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestencapsulating routing information.
- get_n_splits(X=None, y=None, groups=None)[source]
-
Возвращает количество итераций разделения в перекрестном валидаторе.
- Параметры:
-
- Xобъект
-
Всегда игнорируется, существует для совместимости.
- yобъект
-
Всегда игнорируется, существует для совместимости.
- groupsобъект
-
Всегда игнорируется, существует для совместимости.
- Возвращает:
-
- n_splitsint
-
Возвращает количество итераций разделения в перекрестном валидаторе.
- split(X, y=None, groups=None)[source]
-
Генерирует индексы для разделения данных на обучающий и тестовый наборы.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Обучающие данные, где
n_samples— количество образцов, аn_features— количество признаков. - yarray-like of shape (n_samples,)
-
Переменная-цель для задач обучения с учителем.
- groupsobject
-
Всегда игнорируется, существует для совместимости.
- Выходные данные:
-
- 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.KFold.html