Как оценить качество модели по ROC AUC и что значит плохой и хороший скор?
Что проверяют
Понимаете ли вы, что порог «хорошего» зависит от задачи, и настораживает ли вас слишком высокое значение.
Как отвечать
Напомните смысл метрики: AUC это вероятность того, что случайно выбранный положительный объект получит больший балл, чем случайно выбранный отрицательный. То есть она измеряет качество ранжирования, а не правильность ответов при конкретном пороге.
Ориентиры:
- 0,5 это случайное угадывание;
- заметно ниже 0,5 означает, что модель выучила связь, но знаки перепутаны;
- 1,0 идеальное разделение.
Что считать хорошим значением, зависит от задачи, и это главная часть ответа:
- в задачах с сильным шумом и слабым сигналом (отток, кредитный скоринг, медицина) 0,7 это уже рабочая модель, а 0,8 хороший результат;
- в задачах с явным сигналом (определение спама, распознавание) 0,9 может быть посредственно;
- сравнивать надо не с абстрактной шкалой, а с базовой линией и с текущим решением. Прирост с 0,72 до 0,75 на большом трафике может стоить дороже, чем модель с 0,9 в другой задаче.
Подозрительно высокое значение это повод для расследования. AUC 0,99 на реальной бизнес-задаче почти всегда означает утечку целевой переменной: в признаках оказалось что-то, чего в момент предсказания не существует. Проверять надо в первую очередь это, а не радоваться.
Что метрика не показывает:
- при сильном дисбалансе классов она оптимистична, потому что доля ложных срабатываний считается от большого числа отрицательных. Нужна PR-кривая и средняя точность;
- ничего про калибровку: баллы могут быть верно упорядочены, но не быть вероятностями;
- ничего про рабочий порог: его выбирают отдельно, по цене ошибок каждого типа.
Оценивать стоит с доверительным интервалом и на срезах: по времени, по сегментам пользователей. Модель со средним AUC 0,8, проваливающаяся на новом сегменте, в проде хуже стабильной с 0,78.
Где спотыкаются
Называют универсальный порог «хорошего» значения.
Радуются высокому AUC вместо поиска утечки.
Используют метрику на сильно несбалансированных данных без PR-кривой.
Не проверяют стабильность по времени и по сегментам.