23 Июн 2023
2 мин
276

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

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

People separating data into training and test sets.

Содержание

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

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

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

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

Аналитик данных: новая работа через 5 месяцев
Получится, даже если у вас нет опыта в IT
Получить программу

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

Предположим, у нас есть набор данных размером 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)

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

Вывод

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

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

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