🔬 Как разбить выборку на тестовую и обучающую в Python: простой и эффективный способ

Чтобы разбить выборку на тестовую и обучающую в Python, вы можете использовать функцию train_test_split() из библиотеки sklearn.model_selection.


from sklearn.model_selection import train_test_split

# Входные данные
X = ваш_массив_признаков
y = ваш_массив_меток

# Разделение набора данных
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

  

В приведенном выше коде мы передаем наши признаки и метки в функцию train_test_split(). Мы также указываем размер тестового набора данных (в данном случае 20%) и устанавливаем начальное значение генератора случайных чисел для воспроизводимости результатов (random_state=42). Функция возвращает разделенные обучающую и тестовую выборки, которые мы сохраняем в переменные X_train, X_test, y_train и y_test соответственно.

Детальный ответ

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

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

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

Случайное разделение предполагает случайное распределение объектов в выборке между обучающим и тестовым набором данных. В Python для этого можно использовать библиотеку scikit-learn.


from sklearn.model_selection import train_test_split

# Загружаем данные
X, y = load_data()

# Разделяем выборку на обучающую и тестовую
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

В приведенном выше коде мы используем функцию train_test_split из библиотеки scikit-learn для разделения выборки на обучающую и тестовую. Функция принимает на вход матрицу признаков X и вектор меток y, а также параметры test_size (размер тестовой выборки) и random_state (для воспроизводимости результатов).

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

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


from sklearn.model_selection import StratifiedShuffleSplit

# Загружаем данные
X, y = load_data()

# Создаем объект разделения
stratified_split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)

# Разделяем выборку на обучающую и тестовую
for train_index, test_index in stratified_split.split(X, y):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

В этом примере мы используем класс StratifiedShuffleSplit из библиотеки scikit-learn для стратифицированного разделения выборки. Мы создаем экземпляр класса, указываем количество разделений (в данном случае 1), размер тестовой выборки и параметр random_state. Затем, используя цикл, мы разделяем выборку на обучающую и тестовую.

Выбор метода разделения

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

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

Видео по теме

Деление выборки на обучающую и тестовую

Ускорение обучения, начальные веса, стандартизация, подготовка выборки | #4 нейросети на Python

Кластеризация в Python (KMeans и иерархическая)

Похожие статьи:

🎬 Как создать анимацию в Питоне: простой и понятный гайд

Как вычислить сумму факториалов в Питоне? 🧮✖️🍎

🤖 Как написать искусственный интеллект на Python | Полное руководство для начинающих

🔬 Как разбить выборку на тестовую и обучающую в Python: простой и эффективный способ

Как взять данные с сайта на питон? 🐍🌐

Как добавить Python в переменную PATH? 🐍

Как обновить Python на Linux: простая инструкция 🐍🚀