Как разделить поезд и проверить данные для отсортированного набора данных в Python? - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь реализовать алгоритм классификации для набора данных Iris (загружен из Kaggle). В столбце Виды классы (Iris-setosa, Iris-versicolor, Iris-virginica) расположены в отсортированном порядке. Как я могу разделить тренировочные данные и тестовые данные таким образом, чтобы в обоих данных одинаково были все три класса, использующие Python? Я делю набор данных в соотношении 70-30.

Ответы [ 3 ]

3 голосов
/ 04 марта 2020

Если вы хотите перетасовать и разделить данные с коэффициентом 0,3, вы можете использовать

sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True)

, где X - ваши данные, y - соответствующие метки, test_size - это процент shuffle = True перемешивает данные перед разделением

. Чтобы обеспечить равномерное распределение данных по столбцу, вы можете указать это к параметру стратификация .

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, 
                                                    shuffle=True, 
                                stratify = X['YOUR_COLUMN_LABEL'])
1 голос
/ 04 марта 2020

Чтобы убедиться, что три класса одинаково представлены в вашем поезде и тесте, вы можете использовать параметр stratify функции train_test_split .

from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test  = train_test_split(X, y, stratify = y)

Это обеспечит одинаковое соотношение всех классов.

0 голосов
/ 04 марта 2020

используйте sklearn.model_selection.train_test_split и поиграйтесь с параметром Shuffle .

shuffle : логическое значение, необязательно (по умолчанию = True) Стоит ли перетасовывать данные перед разделением. Если shuffle = False, то стратификация должна быть None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...