Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
28 Мар 2024
3 мин
5929

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

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

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

Освоить профессию «Аналитик данных» можно на курсе онлайн-университета 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 можно легко разделить данные случайным или стратифицированным способом.

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

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

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