Вот краткое описание моей проблемы:
- Я работаю над контролируемой обучающей задачей для обучения бинарного классификатора.
- У меня есть набор данных с распределением дисбаланса большого класса: 8 отрицательных экземпляров каждый положительный.
- Я использую f-меру, т.е. гармоническое среднее между специфичностью и чувствительностью, для оценки производительности классификатора.
Я рисую графики ROC нескольких классификаторов, и все они представляют собой большую AUC, что означает, что классификация хороша. Однако, когда я тестирую классификатор и вычисляю f-меру, я получаю очень низкое значение. Я знаю, что эта проблема вызвана перекосом класса в наборе данных, и к настоящему времени я обнаружил два варианта решения этой проблемы:
- Принятие дорогостоящего подхода путем назначения весов экземплярам набора данных (см. этот post)
- Порог прогнозируемых вероятностей, возвращаемых классификаторами, чтобы уменьшить количество ложных срабатываний и ложных негативов.
Я пошел на первый вариант и решил свою проблему (f-мерка удовлетворительная). НО, теперь, мой вопрос: какой из этих методов предпочтительнее? И в чем отличия?
P.S: Я использую Python с библиотекой scikit-learn.