Рубрики
Без рубрики

Как разделить данные на наборы обучения и тестирования?

В области машинного обучения является обычная практика для разделения набора данных на два разных набора. Эти наборы являются набор тренировок и набор тестирования. это

Автор оригинала: 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. Мы также обсудили концепции, такие как переопределение, подходящие для понимания необходимости разделения данных.