Как использовать train_test_split в Python?
Разделение набора данных с помощью функции train_test_split из библиотеки scikit-learn
Одним из ключевых аспектов обучения с учителем является оценка и проверка модели. При оценке предиктивной производительности модели важно, чтобы процесс был непредвзят. Используя функцию train_test_split
из библиотеки машинного обучения scikit-learn, вы можете разделить свой набор данных на подмножества, чтобы минимизировать возможность предвзятости в процессе оценки и проверки.
Важность разделения данных
Обучение с учителем заключается в создании моделей, которые точно отображают заданную входную информацию (независимые переменные или предикторы) на заданный выход (зависимые переменные или ответы).
Допустимые числовые значения, которые измеряют точность, варьируют от области к области. Вы можете найти подробные объяснения в статьях Statistics By Jim, Quora и многих других ресурсах.
Тренировочный, проверочный и тестовый наборы данных
Чтобы получить объективную оценку производительности модели, необходимо разделить набор данных на тренировочный, проверочный и тестовый наборы.
- Тренировочный набор данных используется для обучения модели.
- Проверочный набор данных используется для настройки гиперпараметров модели и выбора модели с наилучшей производительностью.
- Тестовый набор данных используется для окончательной оценки модели и ее производительности на независимых данных.
Определение размеров каждого набора данных зависит от конкретной задачи и доступного объема данных. Обычно используются соотношения, такие как 70% для тренировочного набора, 15% для проверочного набора и 15% для тестового набора.
Подготовка для использования функции train_test_split
Для использования функции train_test_split
из библиотеки scikit-learn вам необходимо установить эту библиотеку с помощью команды pip install scikit-learn
.
После установки вы можете импортировать функцию в свой код:
Применение функции train_test_split
Функция train_test_split
принимает входные данные X
и целевую переменную y
и разделяет их на тренировочный и тестовый наборы. Вы можете указать размеры каждого набора данных с помощью параметра test_size
, который задает долю тестового набора от общего числа данных. Для разделения данных случайным образом используется параметр random_state
, который генерирует случайную начальную перестановку данных.
Пример использования функции train_test_split
:
В этом примере X
- данные, y
- целевая переменная, test_size=0.2
- размер тестового набора данных равен 20% от общего числа данных, random_state=42
- начальное значение генератора случайных чисел.
Обучение с учителем с использованием train_test_split
Функция train_test_split
часто используется в задачах обучения с учителем, таких как линейная регрессия и классификация.
Минимальный пример линейной регрессии
Пример регрессии
Пример классификации
Другие возможности валидации
Библиотека scikit-learn также предоставляет другие функции для валидации моделей, такие как кросс-валидация и разные метрики оценки. Вы можете изучить эти функции в документации scikit-learn.
Заключение
Разделение набора данных на тренировочный, проверочный и тестовый наборы является важным шагом при оценке и проверке моделей в задачах обучения с учителем. Функция train_test_split
из библиотеки scikit-learn позволяет с легкостью выполнить это разделение. Помните, что размеры каждого набора данных и другие параметры должны быть выбраны с учетом конкретной задачи и доступных данных.