Вопрос или проблема
Здравствуйте, в данный момент я пишу дипломную работу и застрял на некоторых этапах.
Я разработал несколько моделей машинного обучения (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$ предсказанная вероятность дефолта) к решению (например, категория или курс действий) должен учитывать последствия правильных и неправильных решений. Например, маловероятно получить штраф за проезд на красный свет поздно ночью, но большинство людей будут стоять на светофоре из-за того, как они будут сердиться, если их накажут (не говоря уже о том, чтобы попасть в аварию). То есть, несмотря на то, что вероятность невысока, что вас оштрафуют или вы окажетесь в аварии, вы все равно стоите на светофоре.
(На самом деле, несмотря на то, что категорий всего две, может быть, больше двух вариантов действий.)
Я вижу два способа дальнейшего действия.
- Не выполнять никакой классификации. Работайте только с предсказанными вероятностями. Оцените их с помощью логарифмической потери, оценки Брайера, псевдо $R^2$ МакФаддена, псевдо $R^2$ Эфрона или любого другого числа мер производительности, таких как обсуждаемые UCLA. Изучите калибровку этих предсказаний, например, с помощью функции
rms::val.prob
в R. Даже если это не подчеркивается или не обсуждается в вашей программе (я могу представить разные причины, почему, некоторые из которых лучше других), кто-то с хорошими статистическими данными должен это оценить. “Классно, этот студент уже знает некоторые хорошие вещи из учебника Харрелла,” может подумать ваш проверяющий. “Этот студент уже работает на уровне аспирантуры.”
- Особенно если ваша область — финансы или бизнес, а не статистика, возможно, вам нужно рассмотреть, что делать с предсказаниями, а не просто их делать. Дайте контекст предсказаниям, даже если они низкие. Интерпретируйте их как финансовый экономист или как владелец бизнеса.
Я обсуждаю связанные понятия здесь.
Ответ или решение
Сильный класс неравновесия в задачах классификации, таких как классификация кредитов, может привести к плохим результатам метрик, как вы уже заметили. Давайте разберем ваши проблемы и предложим возможные решения.
Проблема неравновесия классов:
В вашем случае, только 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 также показывают весьма скромные результаты.
Варианты решения:
-
Изменение правил классификации: Как упомянуто в статьях Хэррела, возможно, стоит работать с предсказанными вероятностями (например, с вероятностью невозврата кредита), а не сразу применять жесткие правила классификации. Вам стоит рассмотреть возможности использования логарифмической потери (log loss), Brier score и других метрик, которые более чувствительны к вероятностным оценкам.
-
Использование методов ресэмплинга: Хотя вы уже пробовали методы SMOTE и утрату (undersampling), возможно, стоит попытаться комбинировать различные методы или исследовать более продвинутые методы, такие как ADASYN, которые могут помочь улучшить баланс классов.
-
Обратите внимание на ваши признаки: Проверьте значимость используемых признаков. Возможно, некоторые из них не дают полезной информации, и стоит рассмотреть отбор признаков, чтобы улучшить производительность модели.
-
Попробуйте ансамблевые методы: Использование различных моделей в сочетании может обеспечить более высокую стойкость и эффективность. Например, можно использовать метод стэкинга или бэггинга моделей.
-
Обратить внимание на бизнес-контекст: Важно осознать, что в вашем случае неверная классификация ‘хороших’ кредитов как ‘плохих’ может иметь значимые последствия. Постарайтесь учитывать этот аспект в процессе разработки модели. Подумайте о возможностях штрафов за ложные положительные результаты и о том, как разработать модель, которая минимизирует эти последствия.
Дополнительные метрики:
Вы упомянули о желании использовать новые метрики. Вот некоторые дополнительные предложения:
- Kappa: оценивает согласованность между предсказанными и фактическими классами с учетом случайной вероятности.
- Weighted или Macro-averaged F1-Score: учитывают как позитивные, так и негативные классы и могут дать более полное представление о качественной работе модели в условиях дисбаланса классов.
Заключение:
Проблема несбалансированных классов в классификации кредитов требует внимательного подхода. Работайте с вероятностями, осмысляйте последствия, пробуйте разные методы и метрики. Если вы сможете продемонстрировать понимание этих сложных аспектов в своем исследовании, это впечатлит ваших преподавателей и даст вам глубже осознать предмет вашей работы. Удачи в вашем исследовании!