1 Вопрос: Есть ли смысл в Scikit научиться делать стратифицированное разделение на основе нескольких переменных?

вопрос создан в Fri, Mar 29, 2019 12:00 AM

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

    
1
  1. Добро пожаловать в SO; пожалуйста, найдите время, чтобы прочитать Как спросить и Как создать минимальный, полный и проверяемый пример .
    2019-03-29 10: 59: 58Z
1 ответ                              1                         

Этот объект перекрестной проверки представляет собой объединение 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]
    
1
2019-03-30 15: 24: 48Z
источник размещен Вот