Как разделить данные с помощью train_test_split в Python Numpy на набор данных для обучения, тестирования и проверки? Раскол не должен быть случайным

Я хочу разделить категории данных на набор для обучения, тестирования и проверки. Например: если у нас есть 3 категории положительных, отрицательных и нейтральных в наборе данных. Положительная категория разделена на обучающую, тестовую и проверочную. То же самое и с двумя другими категориями. Коэффициент разделения составляет 80% данных для обучения и 20% для тестирования. Из 80% данных обучения разделите 10% на данные проверки. Но самое главное, что разбиение данных не должно происходить случайным образом.


person user85181    schedule 21.11.2019    source источник


Ответы (1)


Для этого можно использовать параметр stratify:

Например: если бы вы использовали для этого набор данных Iris.

from sklearn import cross_validation, datasets 

X = iris.data[:,:2]
y = iris.target

cross_validation.train_test_split(X,y,stratify=y)

Вы можете прочитать больше здесь: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html.

person Sharath    schedule 21.11.2019
comment
Неважно. Об этом позаботится переменная stratify. Может иметь любое количество классов. - person Sharath; 21.11.2019
comment
Добро пожаловать. Пожалуйста, отметьте это как ответ, чтобы другие тоже могли получить пользу - person Sharath; 21.11.2019