Вы видели эту проблему в своем наборе данных? Вы можете столкнуться с проблемой несбалансированных классов, когда имеете дело с проблемами классификации. Это очень распространено. Представьте, что вы создаете модель классификации и получаете точность 98%. Можете ли вы сказать, что ваша модель хороша тем, что показывает довольно высокую точность? Что, если около 98% данных принадлежат одному классу? Мы можем добиться точности 98% без построения модели, просто предсказав, что все тестовые случаи принадлежат одному классу.

Например, в наборе данных о раке 98% опухолей могут быть доброкачественными, и только 2% из них могут быть злокачественными. Мы можем сказать, что у всех пациентов нет рака, если нам просто нужна высокая точность. В наборе данных об аренде домов только 2% арендаторов могли быть выселены. Мы можем легко сделать хорошие прогнозы, сказав, что не все жильцы будут выселены.

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

Подходы к обработке несбалансированных классов

1) Сбор дополнительных данных

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

2) Выбор правильных показателей эффективности

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

Точность: точность положительных прогнозов.

  • TP / (TP + FP)

Отзыв: доля положительных экземпляров, правильно обнаруженных классификатором.

  • TP / (TP + FN)

Показатель F1: среднее гармоническое точности и полноты

  • 2 x (точность x полнота) / (точность + полнота)

AUC: соотношение между истинно положительными показателями и ложноположительными показателями.

  • Каппа Коэна: точность классификации, нормированная дисбалансом классов

3) Повторная выборка обучающей выборки

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

Недостаточная выборка

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

Преимущества

  • Улучшено время выполнения модели
  • Уменьшенное хранилище для тренировочного набора

Недостатки

  • Потеря информации

Перевыборка

  • Передискретизация увеличивает количество экземпляров миноритарного класса за счет добавления их копий.
  • Рассмотрите этот подход, когда у вас много данных.

Преимущества

  • Без потери информации
  • Часто превосходит недостаточную выборку

Недостатки

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

4) Передискретизация искусственного меньшинства

Технику создания синтетических образцов можно использовать, чтобы избежать проблемы переобучения, возникающей при добавлении копий экземпляров меньшинства. Популярным алгоритмом является SMOTE (Synthetic Minority Over-sampling Technique). Он выбирает подмножество экземпляров меньшинства, а затем создает новые синтетические подобные экземпляры.

Преимущества

  • полезно, чтобы избежать проблемы переоснащения, возникающей из-за избыточной выборки с дубликатами
  • Без потери информации

Недостатки

  • SMOTE отлично работает с низкоразмерными данными, но не очень эффективен для многомерных данных.

5) Методы ансамбля

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

6) Наказание моделей

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

Заключение

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

Удачи!

Ссылка на мой блог: http://csmoon-ml.com/index.php/2018/12/15/6-techniques-to-deal-with-imbalanced-classes-in-machine-learning/