Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
23 Июн 2023
3 мин
4610

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

Узнайте, как правильно разделить данные на обучающую и тестовую выборки для оценки производительности моделей аналитики данных.

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

Освоить профессию «Аналитик данных» можно на курсе онлайн-университета Skypro с нуля за 12 месяцев. Вы изучите Excel, SQL и основы Python, отработаете знания на практических задачах и выйдете на рынок труда уверенным младшим специалистом. В процессе учебы будут помогать кураторы и наставники, а специалисты центра карьеры научат составлять резюме и проходить собеседования.

Обучающая и тестовая выборки

Обучающая выборка используется для обучения модели, а тестовая выборка – для оценки ее производительности. Обычно данные делятся в пропорции 70-80% на обучение и 20-30% на тестирование.

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

Пример разделения данных на обучающую и тестовую выборки

Предположим, у нас есть набор данных размером 1000 объектов. Мы хотим разделить эти данные на обучающую и тестовую выборки в пропорции 70% и 30% соответственно.

Случайное разделение

В Python с помощью библиотеки sklearn мы можем использовать функцию train_test_split:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Здесь X и y – это исходные данные и метки классов соответственно, а random_state – это параметр, который гарантирует одинаковое разделение при каждом запуске.

Стратифицированное разделение

Для стратифицированного разделения мы также можем использовать функцию train_test_split, указав параметр stratify:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=42)

Теперь в каждой из выборок будет одинаковое соотношение классов, что может быть полезным, если у нас есть несбалансированные данные.

Стать аналитиком данных можно за 12 месяцев на курсе Skypro. Вы научитесь работать в Excel, SQL, Google Sheets и Python, а еще сможете обрабатывать большие массивы данных, визуализировать их и делать выводы для развития бизнеса. В программе — только нужные навыки, которые вы будете использовать в реальной работе аналитиком. Специалисты центра карьеры помогут составить резюме, портфолио и научат проходить собеседования.

Курс «Аналитик данных» с нуля
Получите востребованную профессию, независимо от прошлого опыта, специальности и образования.
Подробнее
Курс «Аналитик данных» с нуля

Вывод

Разделение данных на обучающую и тестовую выборки является важным шагом в аналитике данных. Это позволяет нам оценить производительность модели на независимой выборке и предотвратить переобучение. В Python с помощью библиотеки sklearn можно легко разделить данные случайным или стратифицированным способом.

Удачного обучения и тестирования ваших моделей! 😉

Бесплатные курсы по аналитике
Специалист с опытом работы до трех лет, зарабатывает около 140 000 ₽
Подробнее
Бесплатные курсы по аналитике

Добавить комментарий