Есть ли смысл в Scikit научиться делать стратифицированное разделение на основе нескольких переменных? - PullRequest
0 голосов
/ 29 марта 2019

Я работаю над фреймом данных, и я заметил, что 3 переменные были действительно важны для предсказания меток.Поэтому я хочу разделить мой фрейм данных в наборе тестов и поездов, но не со случайным разделением, а со стратифицированным разделением на основе этих 3 переменных (чтобы сохранить то же распределение в наборе поездов, что и в исходном кадре данных).Функция StratifiedShuffleSplit была создана для обработки меток, поэтому я могу указать только одну переменную, а не три, если я не ошибаюсь.Кто-нибудь может мне помочь?Спасибо

1 Ответ

0 голосов
/ 30 марта 2019

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

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

>>> StratifiedShuffleSplit(n_splits=5, random_state=0, ...)
>>> for train_index, test_index in sss.split(X, y):
...    print("TRAIN:", train_index, "TEST:", test_index)
...    X_train, X_test = X[train_index], X[test_index]
...    y_train, y_test = y[train_index], y[test_index]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...