Многослойный Поезд / Валидация / Тест-сплит в scikit-learn

Здесь уже есть описание того, как сделать расслоение поезда / теста в scikit через train_test_split (Стратифицированный Поезд / Тест-Сплит в Scikit-Learn) и описание того, как выполнить произвольное обучение / валидацию / тестирование раскола с помощью np.split (Как разбить данные на 3 набора (обучение, проверка и тестирование)?). Но как насчет того, чтобы разделить поезд / проверку / тестирование?

Самое близкое приближение, которое приходит на ум для выполнения стратифицированного (по метке класса) разделения поезд / проверка / тестирование, заключается в следующем, но я подозреваю, что есть лучший способ, который может достичь этого за один вызов функции или более точно:

Допустим, мы хотим сделать 60/20/20 разделение поезда / проверки / теста, затем мой текущий подход - сначала сделать стратифицированное разделение 60/40, а затем разделить стратифеид 50/50 на эти первые 40, чтобы в конечном итоге получить 60/20/20 стратифицированный сплит.

from sklearn.cross_validation import train_test_split
SEED = 2000
x_train, x_validation_and_test, y_train, y_validation_and_test = train_test_split(x, y, test_size=.4, random_state=SEED)
x_validation, x_test, y_validation, y_test = train_test_split(x_validation_and_test, y_validation_and_test, test_size=.5, random_state=SEED)

Пожалуйста вернитесь, если мой подход правильный и / или если у вас есть лучший подход.

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос