Вопрос или проблема
У меня есть набор данных с примерно 200 000 записей. Целевая переменная бинарная, и только 4000 экземпляров принадлежат классу интереса.
Я хотел бы уменьшить число экземпляров большинства, чтобы получить набор данных с 8000 записей, разделённых 50-50 между двумя классами. Затем я бы обучил модель на, скажем, 80% уменьшенных данных и протестировал её на оставшихся 20% уменьшенных данных.
Мой вопрос: будет ли полученная модель хорошо работать также на новых, несбалансированных данных? Если ответ “да, но…”, не могли бы вы сказать, что мне нужно сделать, чтобы это было так?
При равных остальных условиях, повторная выборка действительно не улучшает производительность, она только изменяет тип наиболее распространённых ошибок. Именно поэтому обучающие данные должны соответствовать ожидаемому распределению в популяции, то есть если классификатор предполагается применять к данным, где положительный класс составляет 2%, то нужно сохранить пропорцию 2% в обучающих данных.
Допустим, что ваши обучающие данные распределены 50-50.
Если признаки действительно являются хорошими индикаторами для цели, то модель может достигнуть почти идеальной производительности на любом распределении, так как она может хорошо различать два класса.
В общем случае, когда признаки не так хороши, модель не всегда хорошо различает два класса. Поэтому есть экземпляры, которые модель “не уверена”, как классифицировать. Поскольку нет класса большинства, эти экземпляры будут предсказаны как положительные или отрицательные в равной пропорции, что вызывает примерно одинаковое количество ложноположительных (FP) и ложноотрицательных (FN) ошибок. Однако на тестовом наборе с 2% положительных экземпляров количество FN становится очень малым, но количество FP становится очень большим. Другими словами, балансировка обучающего набора приводит к лучшему воспоминанию, но худшей точности.
Иногда, если задача требует предпочтения воспоминания перед точностью, может иметь смысл двигаться в этом направлении. Но я думаю, что это должно делаться только по этой причине и, на мой взгляд, только после того, как будет протестировано обычное распределение сначала.
Ответ или решение
Заголовок: Влияние недообучения на классификаторы в условиях несбалансированных данных
Вопрос о том, будет ли классификатор, обученный на недообработанных данных, давать точные прогнозы на новых несбалансированных данных, представляет интерес для специалистов в области аналитики данных и машинного обучения. В данном ответе мы рассмотрим основные аспекты данной проблемы, актуальные для вашего сценария.
1. Обзор проблемы
Ваши данные состоят из приблизительно 200,000 записей, причем только 4,000 из них принадлежат классу интереса. Ваше решение — сокращение (undersampling) большинства классов до 8,000 записей, что позволяет получить сбалансированную выборку (50% из каждого класса). Обучение на 80% этих данных и тестирование на оставшихся 20% — это распространенный подход, но существует несколько нюансов.
2. Как недостаточная выборка влияет на обучение
При обучении классификатора на сбалансированных данных, где две категории представлены в равном количестве, вы можете потеть минимизировать проблемы, связанные с несбалансированными данными, такими как чрезмерное количество ложноположительных или ложноотрицательных результатов. Тем не менее, наличие сбалансированной выборки в определённой степени может снизить возможности модели в реальных сценариях, где классы неравномерно распределены.
3. Вероятные проблемы с точностью прогнозов
Исследования показывают, что, если в обучающем наборе изменяется соотношение классов (в вашем случае 50-50), это может повлиять как на точность, так и на другие метрики, такие как полнота (recall) и точность (precision). При дальнейшем применении модели на новых данных, где положительный класс составляет, например, 2%, модель может:
- Увеличить количество ложноположительных (FP) результатов, поскольку не имея достаточной информации о реальном распределении, алгоритм может выдать больше положительных предсказаний, чем следует.
- Уменьшить количество ложноотрицательных (FN) результатов, так как модель будет «поддерживать» положительный класс на основе недостатка информации о распределении.
4. Рекомендации для повышения точности предсказаний
Если вы настаиваете на использовании техники недообучения, вот несколько шагов, которые необходимо предпринять для повышения производительности модели на несбалансированных данных:
- Валидация на несбалансированных данных: Включите в процесс валидации тестирование модели на несбалансированных данных, отражающих реальное распределение.
- Используйте методологии оценки: Применяйте методы, такие как кросс-валидация, чтобы улучшить надежность оценки модели.
- Настройка порога классификации: Порог, использованный для принятия решения о принадлежности к классу, может быть перемещен, чтобы лучше уравновесить полноту и точность.
- Изучение альтернативных методов: Рассматривайте другие подходы, такие как синтетическое создание данных (например, SMOTE), которые могут увеличить количество примеров положительного класса, сохраняя информативность признаков.
Заключение
Ответ на ваш вопрос о точности классификатора, обученного на недообработанных данных, показателен для понимания того, как распределение данных влияет на модель. Поддержание реального распределения классов в ваших данных является критично важным для создания модели, способной эффективно обрабатывать несбалансированные данные. Следуя рекомендациям, приведенным выше, вы сможете улучшить точность прогнозов вашего классификатора и повысить его обоснованность в реальных приложениях.
Если у вас возникли дополнительные вопросы или требуется консультация по практике, не стесняйтесь обращаться за поддержкой!