Автор оригинала: Pankaj Kumar.
В области машинного обучения является обычная практика для разделения набора данных на два разных набора. Эти наборы Обучение Установить и Набор тестирования Отказ Предпочтительно поддерживать обучение и тестирование данных отдельно.
Почему мы должны разделить наш набор данных?
Если мы не разделим набор набора данных на наборы тренировок и тестирования, мы прекращаем тестирование и обучение нашей модели на одни и те же данные. Когда мы проверяем на одни и те же данные, мы обучили нашу модель, мы склонны получить хорошую точность.
Однако это не значит, что модель будет работать так же хорошо на невидимых данных. Это называется переоборудование В мире машинного обучения.
Преодоление – это случай, когда ваша модель представляет собой набор данных слишком точно. Это означает, что ваша модель слишком близко подходит.
Переоснащение – это нежелательное явление при обучении модели. Так подходит.
Подзадание – это когда модель даже не может представлять точки данных в тренировочном наборе данных.
Как разделить набор данных, используя Sklearn?
Посмотрим, как мы можем использовать Sklearn, чтобы разделить набор данных на наборы тренировки и тестирования. Мы будем перейти на процесс шаг за шагом.
1. Импортируйте набор данных
Давайте начнем, импортируя набор данных в нашу ноутбук Python. В этом руководстве мы собираемся использовать набор данных Titian в качестве набора данных. Вы можете импортировать набор данных Титаника из Библиотека морской библиотеки в питоне.
import seaborn as sns titanic = sns.load_dataset('titanic') titanic.head()
2. Форма ввода и выходных векторов из набора данных
Прежде чем перейти к разделению набора данных на наборы тренировок и тестирования, нам необходимо подготовить векторы ввода и вывода из набора данных.
Давайте лечить « выжил «Столбец как вывод. Это означает, что эта модель будет обучена предсказать, выживет ли человек, выживет или нет.
y = titanic.survived print(y)
Выход:
Нам также нужно удалить ‘ выжил «Столбец из набора данных, чтобы получить вектор ввода.
x=titanic.drop('survived',axis=1) x.head()
Выход:
3. Решив раскол соотношения
Коэффициент разделения представляет собой какую часть данных перейдет на набор тренировок и какую часть она перейдет на набор тестирования. Учебный набор почти всегда больше, чем набор тестирования.
Наиболее распространенное расщепленное соотношение, используемое учеными данных, является 80:20.
Коэффициент разделения 80:20 означает, что 80% данных пойдут на учебный набор и 20% набора данных пойдут на набор тестирования.
4. Выполнение раскола
Разделить данные, которые мы будем использовать rain_test_split от библиотеки Sklearn.
rain_test_split Случайно распределяет ваши данные на набор тренировок и тестирования в соответствии с предоставленным соотношением.
Мы собираемся использовать 80:20 как раскол соотношения.
Нам сначала нужно импортировать rain_test_split от Sklearn.
from sklearn.model_selection import train_test_split
Для выполнения раскола использования:
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)
Мы упомянули размер теста как 0.2, это означает, что размер обучения составит 0,8, давая нам наше желаемое соотношение.
5. Проверьте, печать форм обучения и тестирования векторов
Чтобы проверить разделение, давайте расстегиваем формы разных векторов.
print("shape of original dataset :", titanic.shape) print("shape of input - training set", x_train.shape) print("shape of output - training set", y_train.shape) print("shape of input - testing set", x_test.shape) print("shape of output - testing set", y_test.shape)
Выход:
shape of original dataset : (891, 15) shape of input - training set (712, 14) shape of output - training set (712,) shape of input - testing set (179, 14) shape of output - testing set (179,)
Полный код
Полный код для этого учебника приведен ниже:
import seaborn as sns from sklearn.model_selection import train_test_split #import dataset titanic = sns.load_dataset('titanic') #output vector y = titanic.survived #input vector x=titanic.drop('survived',axis=1) #split x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2) #verify print("shape of original dataset :", titanic.shape) print("shape of input - training set", x_train.shape) print("shape of output - training set", y_train.shape) print("shape of input - testing set", x_test.shape) print("shape of output - testing set", y_test.shape)
Заключение
В этом руководстве было о разделении данных на наборы обучения и тестирования, используя Sklearn в Python. Мы также обсудили концепции, такие как переопределение, подходящие для понимания необходимости разделения данных.