В сфере машинного обучения разделение тестового поезда является решающим шагом в разработке модели. Он предполагает разделение набора данных на два подмножества: одно для обучения модели, а другое — для оценки ее производительности. В этой статье мы рассмотрим несколько методов разделения тестового поезда с использованием TensorFlow-Keras, популярной среды глубокого обучения. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и эффективно их реализовать.
- Разделение вручную.
Самый простой способ выполнить разделение тестового набора — вручную разделить набор данных на отдельные обучающий и тестовый наборы с помощью индексации массива. Вот пример:
import numpy as np
# Assuming X contains the input features and y contains the corresponding labels
X_train = X[:800]
y_train = y[:800]
X_test = X[800:]
y_test = y[800:]
- train_test_split в Scikit-Learn:
Scikit-Learn предоставляет удобную функцию под названием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.2, random_state=42)
- Наборы данных TensorFlow:
Если вы работаете с наборами данных TensorFlow, вы можете использовать встроенную функциюtrain_test_splitдля разделения набора данных. Вот пример:
import tensorflow_datasets as tfds
(ds_train, ds_test), ds_info = tfds.load('dataset_name', split=['train', 'test'], shuffle_files=True, with_info=True)
- Стратифицированное разделение.
В случаях, когда набор данных несбалансирован, важно поддерживать распределение классов как в обучающем, так и в тестовом наборах.train_test_splitScikit-Learn поддерживает послойное разделение. Вот пример:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)
В этой статье мы рассмотрели различные методы разделения тестового поезда с использованием TensorFlow-Keras. Мы рассмотрели разделение вручную, train_test_splitScikit-Learn, наборы данных TensorFlow и послойное разделение. Каждый метод имеет свои преимущества и может использоваться в зависимости от конкретных требований вашего проекта машинного обучения. Понимая эти методы и эффективно их используя, вы сможете улучшить процесс разработки моделей и повысить точность моделей машинного обучения.