Борьба с дисбалансом класса в двоичной классификации

Вот краткое описание моей проблемы:

  • Я работаю над контролируемой обучающей задачей для обучения бинарного классификатора.
  • У меня есть набор данных с распределением дисбаланса большого класса: 8 отрицательных экземпляров каждый положительный.
  • Я использую f-меру, т.е. гармоническое среднее между специфичностью и чувствительностью, для оценки производительности классификатора.

Я рисую графики ROC нескольких классификаторов, и все они представляют собой большую AUC, что означает, что классификация хороша. Однако, когда я тестирую классификатор и вычисляю f-меру, я получаю очень низкое значение. Я знаю, что эта проблема вызвана перекосом класса в наборе данных, и к настоящему времени я обнаружил два варианта решения этой проблемы:

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

Я пошел на первый вариант и решил свою проблему (f-мерка удовлетворительная). НО, теперь, мой вопрос: какой из этих методов предпочтительнее? И в чем отличия?

P.S: Я использую Python с библиотекой scikit-learn.

Ответы

Ответ 1

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

Весоизмерительное

По сути, утверждается, что "стоимость ошибочной классификации редкого класса хуже, чем неправильно классифицировать общий класс. Это применяется на уровне алгоритма в таких алгоритмах, как SVM, ANN и Random Forest. Ограничения здесь состоят в том, может ли алгоритм работать с весами. Кроме того, многие применения этого пытаются решить идею сделать более серьезную ошибочную классификацию (например, классифицировать человека, у которого рак поджелудочной железы не является раком). В таких обстоятельствах вы знаете, почему вы хотите, чтобы вы классифицировали определенные классы даже в несбалансированных настройках. В идеале вы хотите оптимизировать параметры затрат, как и любой другой параметр модели.

Thresholding

Если алгоритм возвращает вероятности (или какой-либо другой балл), пороговое значение может быть применено после того, как модель была построена. По существу, вы меняете порог классификации с 50-50 до соответствующего уровня компромисса. Обычно это может быть оптимизировано путем генерирования кривой оценочной метрики (например, F-меры). Ограничение здесь заключается в том, что вы делаете абсолютные компромиссы. Любая модификация обрезания, в свою очередь, уменьшает точность прогнозирования другого класса. Если у вас есть чрезвычайно высокие вероятности для большинства ваших общих классов (например, большинство выше 0,85), у вас больше шансов добиться успеха с помощью этого метода. Он также является независимым от алгоритма (при условии, что алгоритм возвращает вероятности).

Sampling

Выборка - еще один распространенный вариант, применяемый к несбалансированным наборам данных, чтобы принести некоторый баланс распределениям классов. Существуют, по существу, два фундаментальных подхода.

Под дискретизацией

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

передискретизации

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

Расширенные методы

Существуют дополнительные методы, которые более "сложны", чтобы помочь устранить потенциальный уклон. К ним относятся такие методы, как SMOTE, SMOTEBoost и EasyEnsemble, как указано в предыдущем вопросе относительно несбалансированных наборов данных и CSL.

Здание модели

Еще одно примечание относительно построения моделей с несбалансированными данными заключается в том, что вы должны иметь в виду вашу модельную метрику. Например, такие показатели, как F-меры, не учитывают истинный отрицательный показатель. Поэтому часто рекомендуется, чтобы в неуравновешенных настройках использовались такие показатели, как метка карантин Cohens.