Недостаточная выборка для несбалансированного класса в Python

В настоящее время у меня есть несбалансированный набор данных из более чем 800 000 точек данных. Дисбаланс серьезный, поскольку для одного из двух классов имеется только 3719 точек данных. После недостаточной выборки данных с использованием алгоритма NearMiss в Python и применения классификатора случайного леса я могу добиться следующих результатов:

  • Точность: 81,4%
  • Точность: 82,6%
  • Отзыв: 79,4%
  • Специфичность: 83,4%

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


person ML Enthusiast    schedule 14.11.2019    source источник


Ответы (1)


Недостаточная выборка с 800 тыс. Записей до 4 тыс. Может привести к серьезной потере знаний в вашей предметной области. В большинстве случаев вы сначала делаете передискретизацию, а потом - заниженную. Для этого есть специальный пакет: imblearn. Что касается проверки: вы не хотите оценивать повторно выбранные записи, так как это все испортит. Внимательно изучите параметры оценки в sklearn, а именно: micro, macro, weighted. Документы находятся здесь. Для этого также есть несколько конкретных показателей. Проверьте это здесь:

person Piotr Rarus    schedule 15.11.2019