Вопрос или проблема
Учитывая, что размер выборки мал (примерно 2700 наблюдений), я хочу сделать многоклассовую классификацию. Должен ли я использовать всю выборку вместо разбиения на обучающую и тестовую выборки?
Не делайте этого, я повторяю, НИКОГДА не используйте полный набор данных для каких-либо целей машинного обучения. Всегда делите свои данные на наборы train
, valid
и test
перед тем, как приступить к созданию модели. Даже если набор данных невелик, обязательно разделите его. Соотношение, которое вы выберете, зависит от вас (обычно, когда набор данных мал, вы выбираете соотношение 85:15 или 90:10, но опять же, это зависит от вас).
.
Ответ или решение
Процедура разбиения данных на обучающую, валидационную и тестовую выборки
При работе с небольшими наборами данных, такими как имеющиеся у вас 2,700 наблюдений, важно применять правильные методы разбиения выборки для обеспечения надежности и точности вашего многоклассового классификатора. Часто возникают вопросы о том, можно ли использовать весь набор данных без разбивки; в данной статье мы объясним, почему это нецелесообразно, а также предложим оптимальные советы по разбиению данных и извлечению максимальной ценности из вашего проекта.
Почему стоит избегать использования полного набора данных
-
Обучение и оценка модели:
Если вы обучаете модель на всем наборе данных, вы лишаете себя возможности провести независимую оценку ее производительности. Это приводит к тому, что модель может «запоминать» данные, а не учиться обобщать, что делает ее менее эффективной при работе с новыми, невиданными данными. -
Риск переобучения (overfitting):
Переобучение возникает, когда модель слишком сильно подстраивается под тренировочные данные, теряя способность к обобщению. Это особенно актуально при небольших выборках, где каждая наблюдаемая точка может оказать значительное влияние на параметры модели. -
Отсутствие надежной валидации:
Без разбивки на обучающую и тестовую выборки вы не сможете объективно оценить эффективность модели. Это может привести к принятию неверных решений о дальнейшем развитии вашего проекта.
Процесс разбиения данных
Процесс разбиения данных можно разбить на следующие ключевые этапы:
-
Выбор пропорций разбиения:
Обычно оптимальные пропорции для разбиения небольших данных составляют 85:15 или 90:10. Это означает, что 85% (или 90%) данных будут использованы для обучения, в то время как оставшиеся 15% (или 10%) будут использованы для проверки качества модели. -
Создание обучающей, валидационной и тестовой выборок:
- Обучающая выборка: Самая большая часть данных, которая используется для тренировок модели. На этой стадии алгоритм учится распознавать зависимости и узнавать паттерны.
- Валидационная выборка: Используется для настройки гиперпараметров модели, таких как параметры регуляризации и скорость обучения. Важно проверять модель на этой выборке, чтобы избежать переобучения.
- Тестовая выборка: Непосредственно используется для оценки окончательной производительности модели. Она должна быть полностью отделена от обучающей и валидационной выборок, чтобы результаты были независимыми.
-
Проверка случайности:
Избегайте упорядоченных или структурированных выборок, которые могут привести к предвзятости результата. Используйте случайное распределение данных. -
Использование стратифицированного разбиения:
Так как у вас многоклассовая классификация, целесообразно применять стратифицированное разбиение. Это гарантирует, что в каждой выборке будут одинаковые пропорции классов, что важно для обеспечения представительности и стабильности оценок.
Заключение
В работе с небольшими наборами данных, как ваши 2,700 наблюдений, важно применять процедуру разбиения на обучающую, валидационную и тестовую выборки. Это гарантирует, что ваша модель будет корректно обучена, оценена и готова для применения на новых данных. Использование всего набора данных без разбивки может привести к переобучению и искажению результатов. Настоятельно рекомендуется следовать предложенной методологии, чтобы максимизировать эффективность вашего многоклассового классификатора.