Train Test Split: принцип и практика
Разделение данных на обучающую и тестовую выборки в машинном обучении
Разделение данных на обучающую и тестовую выборки является одним из ключевых шагов в машинном обучении. Этот процесс позволяет оценить производительность модели на непредставленных данных. Одним из наиболее распространенных методов для разделения данных является функция "train_test_split" библиотеки scikit-learn в Python.
Функция train_test_split
принимает на вход несколько параметров, включая входные признаки (X
) и соответствующие целевые значения (y
). Она случайно перемешивает данные и разделяет их на две части: обучающую и тестовую выборки. В общем случае принято разделять данные в соотношении 70:30, то есть 70% данных используется для обучения модели, а оставшиеся 30% для тестирования производительности.
Давайте рассмотрим пример кода для использования функции train_test_split
:
from sklearn.model_selection import train_test_split
# Входные данные (X) и соответствующие целевые значения (y)
X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Вывод размеров обучающей и тестовой выборок
print("Размер обучающей выборки:", len(X_train))
print("Размер тестовой выборки:", len(X_test))
# Результат:
# Размер обучающей выборки: 7
# Размер тестовой выборки: 3
В данном примере мы имеем 10 входных признаков (X
) и соответствующие целевые значения (y
). Мы используем функцию train_test_split
, чтобы разделить данные на обучающую (X_train, y_train
) и тестовую (X_test, y_test
) выборки. В данном случае мы указываем test_size=0.3
, что означает, что 30% данных будут использоваться для тестирования. Параметр random_state=42
используется для фиксации случайности и обеспечения воспроизводимости результатов.
После того, как мы разделили данные на обучающую и тестовую выборки, мы можем проводить обучение модели на обучающих данных и использовать тестовые данные для оценки производительности модели. Важно помнить, что тестовые данные должны быть представительной выборкой, чтобы оценивать производительность модели на реальных данных.
В заключение, функция train_test_split
является мощным инструментом для разделения данных на обучающую и тестовую выборки. Она позволяет оценивать производительность модели на непредставленных данных и является неотъемлемым шагом в процессе разработки моделей машинного обучения.