Работа с несбалансированными классами в машинном обучении

Введение

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

Например, предположим, что у вас есть два класса — A и B. Класс A составляет 95 % вашего набора данных, а класс B — остальные 5 %, но вас больше всего интересует идентификация экземпляров класса B. Вы можете достичь точности 95%, просто предсказывая класс A каждый раз, но это обеспечивает бесполезный классификатор для вашего предполагаемого варианта использования. Вместо этого правильно откалиброванный метод может обеспечить более низкую точность, но будет иметь значительно более высокий процент истинных положительных результатов (или отзыва), что на самом деле является метрикой, для которой вы должны были оптимизировать. Эти сценарии часто возникают в контексте обнаружения, например, оскорбительного контента в Интернете или маркеров болезни в медицинских данных.

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

Метрики

Как правило, эта проблема связана с компромиссом между отзывом (процентом действительно положительных случаев, которые были классифицированы как таковые) и точностью (процентом положительных классификаций, которые действительно являются положительными). . В ситуациях, когда мы хотим обнаружить экземпляры класса меньшинства, нас обычно больше заботит отзыв, чем точность, поскольку в контексте обнаружения обычно более дорого пропустить положительный экземпляр, чем ложно пометить отрицательный экземпляр. Например, если мы пытаемся обнаружить оскорбительный контент, проверяющий вручную обнаружит, что контент на самом деле не является оскорбительным, тривиально, но гораздо сложнее определить оскорбительный контент, который даже не был помечен как таковой. Таким образом, при сравнении подходов к проблемам несбалансированной классификации рассмотрите возможность использования показателей помимо точности, таких как полнота, точность и AUROC. Может оказаться, что переключения метрики, которую вы оптимизируете во время выбора параметра или модели, достаточно, чтобы обеспечить желаемую производительность при обнаружении класса меньшинства.

Экономичное обучение

При обычном обучении мы одинаково относимся ко всем неправильным классификациям, что вызывает проблемы с несбалансированной классификацией, поскольку нет дополнительной награды за определение класса меньшинства по сравнению с классом большинства. Чувствительное к стоимости обучение меняет это и использует функцию C(p, t) (обычно представляемую в виде матрицы), которая определяет стоимость неправильной классификации экземпляра класса t как класс p. Это позволяет нам более строго наказывать за неправильную классификацию класса меньшинства, чем за неправильную классификацию класса большинства, в надежде, что это увеличит истинный положительный показатель. Обычная схема для этого состоит в том, чтобы стоимость была равна обратной пропорции набора данных, который составляет класс. Это увеличивает наказание по мере уменьшения размера класса.

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

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

Обнаружение аномалий

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

Вывод

Если вы только собираетесь начать свое машинное обучение и хотите учиться с нуля, я буду делать эту серию, которая будет длиться 5–6 минут о машинном обучении и некоторых побочных проектах в конце каждой главы, так что следите за обновлениями и будьте счастливы обучение

Это мое личное исследование, если у вас есть какие-либо комментарии, пожалуйста, свяжитесь со мной.

Добро пожаловать на мою среднюю страницу

Github, LinkedIn, Захра Эльхамрауи, Upwork