Важность разделения данных

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

Чтобы продемонстрировать причины такого разделения данных, представим, что у нас есть набор данных о домашних животных двух типов:

Кошки: Собаки:

Для каждого животного в наборе данных известны только два признака: вес и пушистость.

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

Выберите признак:

Важность разделения данных

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

Чтобы понять, почему это так, представим, что у нас есть набор данных о двух типах домашних животных:

Кошки: Собаки:

Для каждого животного в наборе данных у нас есть два признака: вес и пушистость.

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

Обучающая, тестовая и валидационная выборки

Первым шагом в нашей задаче классификации является случайное разделение данных о животных на три независимые выборки:

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

Валидационная выборка: Набор данных, который мы используем для оценки производительности модели при различных типах моделей и выборе параметров.

Тестовая выборка: Набор данных, который мы используем для оценки точности модели в реальных условиях.

Обучающая выборка

Обучающая выборка — это набор данных, который мы используем для обучения модели. Именно этот набор данных модель использует для изучения всех возможных закономерностей или взаимосвязей, которые позволят делать предсказания позже.

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

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

Чтобы предоставить модели как можно больше информации для обучения, мы обычно выделяем большую часть (например, 60–80%) исходных данных на обучающую выборку.

Создание модели

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

Для конкретной комбинации доступных признаков (Ничего, Вес, Пушистость или оба Вес и Пушистость) классификатор логистической регрессии создаст границу принятия решений для разделения животных на кошек или собак. Каждое животное будет классифицировано в зависимости от его положения относительно границы принятия решений: одна сторона для собак, другая для кошек.

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

Перетащите каждое животное в обучающей выборке на новое место, чтобы увидеть, как обновляется граница!

Валидационная выборка

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

Как нам решить, какую модель выбрать?

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

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

В нашем случае мы рассматриваем только один алгоритм (логистическую регрессию), но мы можем рассматривать количество учитываемых признаков как гиперпараметр, который мы хотели бы настроить[*]Для целей демонстрации мы не будем беспокоиться о других параметрах нашей модели логистической регрессии, таких как конкретные решатели или штрафы за регуляризацию.

Выберите признак, чтобы просмотреть производительность модели на валидационной выборке в таблице ниже.

Перетащите признак через линию, чтобы увидеть, как обновляется производительность!

Тестовая выборка

Предположим, что вы не слишком активно перемещали животных, наша лучшая модель (согласно валидационной выборке) — это модель, которая учитывает оба признака.

После того как мы использовали валидационную выборку для определения алгоритма и выбора параметров, которые мы хотели бы использовать в продакшене, тестовая выборка используется для оценки истинной производительности модели в реальных условиях.

Повторим еще раз: тестовая выборка используется на последнем этапе для оценки производительности модели на невидимых данных.

Мы никогда, ни при каких обстоятельствах, не должны смотреть на производительность тестовой выборки до выбора модели.

Роль выбора модели и настройки параметров строго предназначена для валидационной выборки.

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

Итог

Вы могли заметить, что точность на тестовой выборке модели, использующей только пушистость, была выше, чем у модели, использующей оба признака, несмотря на то, что валидационная выборка выбрала последнюю как лучшую. Такое расхождение между производительностью на валидационной и тестовой выборках может происходить, но это не плохо. Помните, что производительность на тестовой выборке — это не число, которое нужно оптимизировать, а метрика для оценки будущей производительности. Она позволяет нам с уверенностью оценить, что наша модель может различать кошек и собак с точностью 87,5%.

Ключевые выводы

Лучшая практика в машинном обучении — разделять данные на следующие три группы:

Обучающая выборка: Для обучения модели.

Валидационная выборка: Для непредвзятой оценки модели.

Тестовая выборка: Для финальной оценки модели.

Соблюдение этого подхода помогает убедиться, что у нас есть реалистичное представление о производительности нашей модели и что мы (надеемся) создали модель, которая хорошо обобщает на невидимых данных.

🐾