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

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

Вопрос:

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

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

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

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

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

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

Лучший ответ:

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

Содержание

  1. Весоизмерительное
  2. Thresholding
  3. Sampling
  4. Здание модели

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

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

Thresholding

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

Sampling

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

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

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

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

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

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

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

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

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

Оцените статью
Добавить комментарий