Важным шагом в процессе аналитики данных является разделение исходных данных на обучающую и тестовую выборки. Это позволяет нам обучить модель на одной части данных и проверить ее производительность на другой, независимой части. В этой статье мы рассмотрим принципы разделения данных и примеры на практике.
Обучающая и тестовая выборки
Обучающая выборка используется для обучения модели, а тестовая выборка – для оценки ее производительности. Обычно данные делятся в пропорции 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)
Теперь в каждой из выборок будет одинаковое соотношение классов, что может быть полезным, если у нас есть несбалансированные данные.
Вывод
Разделение данных на обучающую и тестовую выборки является важным шагом в аналитике данных. Это позволяет нам оценить производительность модели на независимой выборке и предотвратить переобучение. В Python с помощью библиотеки sklearn
можно легко разделить данные случайным или стратифицированным способом.
Удачного обучения и тестирования ваших моделей! 😉
Добавить комментарий