Плохие результаты метрик из-за сильного классового дисбаланса в классификации кредитных карт.

Вопрос или проблема

Здравствуйте, в данный момент я пишу дипломную работу и застрял на некоторых этапах.
Я разработал несколько моделей машинного обучения (XGBoost, (сбалансированный) случайный лес, ElasticNet и др.) на крайне несбалансированном наборе данных (только около 0,2% данных принадлежат положительному классу). Почти все мои модели показывают одинаковую производительность по метрикам, которые я выбрал:

  • ROC AUC 0,77-0,80
  • Полезность для положительного класса: 0,80-0,88
  • PR AUC: 0,04 –
    0,06
  • Точность для положительного класса: 0,01-0,02
  • Коэффициент корреляции Мэттьюса (MCC): 0,13-0,15
  • Оценка Брайера: 0,11-0,13

Я очень stressed, что метрики, которые обычно чувствительны к несбалансированным наборам данных, на самом деле очень плохие. Я пробовал несколько методов выборки, включая некоторые варианты SMOTE, недов выборку (для которой я даже реализовал скрипт кросс-валидации, чтобы выяснить, какая скорость недов выборки будет наилучшей) и даже пробовал реализовать веса классов, но результаты, похоже, не улучшаются…
Если у кого-то есть какие-либо предложения, это будет для меня очень важно! Также небольшая информация: модель должна быть классификатором для кредитов, и есть только два класса: хорошие и плохие кредиты. Я читал на некоторых форумах, что вполне нормально иметь такие результаты, если полезность важнее, а ложные положительные результаты (которые обычно высоки из-за несбалансированности) не так “дороги”. Но классифицировать хорошие кредиты как плохие кредиты, на самом деле, плохо?
Спасибо за внимание, и я буду благодарен за любую помощь!!!
—————————————————————–
P.s: Я также хотел попробовать некоторые новые метрики для этой проблемы несбалансированной классификации. Предлагаемые метрики: Каппа; взвешенная точность, F1-Score; макро-средняя точность, F1-Score.
Если у кого-то есть предложения по метрикам, которые я мог бы использовать, я также буду признателен!

Я настоятельно рекомендую прочитать два блога Фрэнка Харрелла о проблемах “классификации” в машинном обучении: Классификация и предсказание и Повреждения, причиненные точностью классификации и другими дискретными неправильными правилами оценивания точности.

Помните, что ваши метрики классификации, такие как точность и $F_1$ балл, применимы к оригинальной модели с последующим правилом принятия решения о том, как присвоить предсказанное значение категории. Может быть, оригинальная модель хороша, но правило принятия решения — нет. Действительно, Харрелл утверждает в этих двух ссылках, что правила принятия решений обычно являются плохой идеей или, по крайней мере, преждевременным шагом, поскольку переход от предсказания (например, $0.2$ предсказанная вероятность дефолта) к решению (например, категория или курс действий) должен учитывать последствия правильных и неправильных решений. Например, маловероятно получить штраф за проезд на красный свет поздно ночью, но большинство людей будут стоять на светофоре из-за того, как они будут сердиться, если их накажут (не говоря уже о том, чтобы попасть в аварию). То есть, несмотря на то, что вероятность невысока, что вас оштрафуют или вы окажетесь в аварии, вы все равно стоите на светофоре.

(На самом деле, несмотря на то, что категорий всего две, может быть, больше двух вариантов действий.)

Я вижу два способа дальнейшего действия.

  1. Не выполнять никакой классификации. Работайте только с предсказанными вероятностями. Оцените их с помощью логарифмической потери, оценки Брайера, псевдо $R^2$ МакФаддена, псевдо $R^2$ Эфрона или любого другого числа мер производительности, таких как обсуждаемые UCLA. Изучите калибровку этих предсказаний, например, с помощью функции rms::val.prob в R. Даже если это не подчеркивается или не обсуждается в вашей программе (я могу представить разные причины, почему, некоторые из которых лучше других), кто-то с хорошими статистическими данными должен это оценить. “Классно, этот студент уже знает некоторые хорошие вещи из учебника Харрелла,” может подумать ваш проверяющий. “Этот студент уже работает на уровне аспирантуры.”
  1. Особенно если ваша область — финансы или бизнес, а не статистика, возможно, вам нужно рассмотреть, что делать с предсказаниями, а не просто их делать. Дайте контекст предсказаниям, даже если они низкие. Интерпретируйте их как финансовый экономист или как владелец бизнеса.

Я обсуждаю связанные понятия здесь.

Ответ или решение

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

Проблема неравновесия классов:

В вашем случае, только 0.2% данных относятся к положительному классу (плохие кредиты). Это крайне неравномерное распределение классов создает проблемы для большинства стандартных метрик оценки эффективности, таких как точность, F1-метрика и точность (precision), что может создать ложное представление о работоспособности модели.

Анализ ваших метрик:

Ваши результаты показывают, что:

  • ROC AUC: 0.77-0.80 – это приемлемое значение, однако оно может быть улучшено.
  • Recall для положительного класса: 0.80-0.88 – высокий показатель, указывающий на то, что ваша модель хорошо идентифицирует положительный класс, но это может быть связано с тем, что вы используете несбалансированные данные.
  • PR AUC: 0.04-0.06 и Precision: 0.01-0.02 показывают крайне низкие результаты. Это указывает на высокое количество ложных положительных результатов.
  • MCC и Brier Score также показывают весьма скромные результаты.

Варианты решения:

  1. Изменение правил классификации: Как упомянуто в статьях Хэррела, возможно, стоит работать с предсказанными вероятностями (например, с вероятностью невозврата кредита), а не сразу применять жесткие правила классификации. Вам стоит рассмотреть возможности использования логарифмической потери (log loss), Brier score и других метрик, которые более чувствительны к вероятностным оценкам.

  2. Использование методов ресэмплинга: Хотя вы уже пробовали методы SMOTE и утрату (undersampling), возможно, стоит попытаться комбинировать различные методы или исследовать более продвинутые методы, такие как ADASYN, которые могут помочь улучшить баланс классов.

  3. Обратите внимание на ваши признаки: Проверьте значимость используемых признаков. Возможно, некоторые из них не дают полезной информации, и стоит рассмотреть отбор признаков, чтобы улучшить производительность модели.

  4. Попробуйте ансамблевые методы: Использование различных моделей в сочетании может обеспечить более высокую стойкость и эффективность. Например, можно использовать метод стэкинга или бэггинга моделей.

  5. Обратить внимание на бизнес-контекст: Важно осознать, что в вашем случае неверная классификация ‘хороших’ кредитов как ‘плохих’ может иметь значимые последствия. Постарайтесь учитывать этот аспект в процессе разработки модели. Подумайте о возможностях штрафов за ложные положительные результаты и о том, как разработать модель, которая минимизирует эти последствия.

Дополнительные метрики:

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

  • Kappa: оценивает согласованность между предсказанными и фактическими классами с учетом случайной вероятности.
  • Weighted или Macro-averaged F1-Score: учитывают как позитивные, так и негативные классы и могут дать более полное представление о качественной работе модели в условиях дисбаланса классов.

Заключение:

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

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

Капча загружается...