KFold#

класс sklearn.model_selection.KFold(n_splits=5, *, перемешивание=False, random_state=None)[источник]#

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

Предоставляет индексы обучения/тестирования для разделения данных на обучающие и тестовые наборы. Разделяет набор данных на k последовательных блоков (по умолчанию без перемешивания).

Каждый блок затем используется один раз в качестве проверочного, в то время как оставшиеся k - 1 блоков образуют обучающий набор.

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

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

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

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

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

перемешиваниеbool, по умолчанию=False

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

random_stateint, экземпляр RandomState или None, по умолчанию=None

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

Смотрите также

StratifiedKFold

Учитывает информацию о классах, чтобы избежать создания фолдов с несбалансированным распределением классов (для задач бинарной или многоклассовой классификации).

GroupKFold

Вариант итератора K-кратной перекрёстной проверки с непересекающимися группами.

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()
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]
6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_n_splits(X=None, y=None, группы=None)[источник]#

Возвращает количество итераций разделения, установленное с помощью n_splits param при создании кросс-валидатора.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features), по умолчанию=None

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

yarray-like формы (n_samples,), по умолчанию=None

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

группыarray-like формы (n_samples,), по умолчанию=None

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

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

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

split(X, y=None, группы=None)[источник]#

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

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

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

yarray-like формы (n_samples,), по умолчанию=None

Целевая переменная для задач обучения с учителем.

группыarray-like формы (n_samples,), по умолчанию=None

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

Возвращает:
обучатьndarray

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

тестndarray

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