StratifiedShuffleSplit#

класс sklearn.model_selection.StratifiedShuffleSplit(n_splits=10, *, test_size=None, train_size=None, random_state=None)[источник]#

Классово-стратифицированный перекрестный валидатор ShuffleSplit.

Предоставляет индексы train/test для разделения данных на обучающие и тестовые наборы.

Этот объект перекрестной проверки представляет собой объединение StratifiedKFold и ShuffleSplit, который возвращает стратифицированные рандомизированные фолды. Фолды создаются с сохранением процентного соотношения выборок для каждого класса в y в бинарной или многоклассовой классификации.

Примечание: как и ShuffleSplit стратегия, стратифицированные случайные разбиения не гарантируют, что тестовые наборы во всех фолдах будут взаимно исключающими, и могут включать перекрывающиеся образцы. Однако это всё ещё очень вероятно для достаточно больших наборов данных.

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

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

Примечание

Стратификация по метке класса решает инженерную проблему, а не статистическую. См. Итераторы перекрестной проверки со стратификацией на основе меток классов для получения дополнительной информации.

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

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

test_sizefloat или int, по умолчанию=None

Если float, должно быть между 0.0 и 1.0 и представлять долю набора данных для включения в тестовое разделение. Если int, представляет абсолютное количество тестовых выборок. Если None, значение устанавливается как дополнение к размеру обучающей выборки. Если train_size также None, он будет установлен в 0.1.

train_sizefloat или int, по умолчанию=None

Если float, должно быть между 0.0 и 1.0 и представлять долю набора данных для включения в обучающее разбиение. Если int, представляет абсолютное число обучающих выборок. Если None, значение автоматически устанавливается как дополнение к размеру тестовой выборки.

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

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

Примеры

>>> import numpy as np
>>> from sklearn.model_selection import StratifiedShuffleSplit
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([0, 0, 0, 1, 1, 1])
>>> sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0)
>>> sss.get_n_splits()
5
>>> print(sss)
StratifiedShuffleSplit(n_splits=5, random_state=0, ...)
>>> for i, (train_index, test_index) in enumerate(sss.split(X, y)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[5 2 3]
  Test:  index=[4 1 0]
Fold 1:
  Train: index=[5 1 4]
  Test:  index=[0 2 3]
Fold 2:
  Train: index=[5 0 2]
  Test:  index=[4 3 1]
Fold 3:
  Train: index=[4 1 0]
  Test:  index=[2 3 5]
Fold 4:
  Train: index=[0 5 1]
  Test:  index=[3 4 2]
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)[источник]#

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

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

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

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

yarray-like формы (n_samples,) или (n_samples, n_labels)

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

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

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

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

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

тестndarray

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

Примечания

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