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_splitsparam при создании кросс-валидатора.- Параметры:
- 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в целое число.
Примеры галереи#
Визуализация поведения кросс-валидации в scikit-learn