Понимание ROC и AUC для моделей бинарной классификации

Я не большой поклонник претенциозных статистических терминов. У всего должна быть потребность и вариант использования. В этой статье я пытаюсь объяснить кривую ROC и ROC-AUC (площадь под кривой), сравнивая разные модели и развивая интуицию, чтобы удовлетворить себя.

Рассмотрим пример проверки пациента на болезнь. Мы называем это положительным, если пациент болен, и отрицательным, если нет.

Истинное «что-то» - это когда наша модель правильно предсказывает истину. Истинно положительный и истинно отрицательный - это когда модель правильно предсказывает, болен человек или нет.

Ложное «что-то» - это когда прогнозы нашей модели неверны. Ложноположительный результат - это когда наша модель утверждает, что человек болен, хотя на самом деле это не так. Ложноотрицательный результат - это когда человек болен, но согласно нашей модели он здоров.

Я знаю, что запоминать эти 4 классификации становится непросто. Независимо от того, какую классификацию вы проводите, всегда возвращайтесь к этому примеру болезни, чтобы прояснить эти термины.

Еще несколько терминов, которые нужно знать. Я знаю, что это отстой, но, пожалуйста, потерпите меня.

Истинно положительная ставка = TP / (TP + FN). Он измеряет, сколько больных людей идентифицировала наша модель среди всех заболевших.

Частота ложных срабатываний = FP / (FP + TN). Он измеряет, сколько здоровых людей было ошибочно отнесено к больным.

ROC (Характеристики оператора приемника) - это двухмерный график, используемый для понимания того, насколько хороша модель двоичной классификации. Модель бинарной классификации в нашем случае может быть любой моделью, которая обеспечивает вероятность от 0 до 1 принадлежности к положительному классу.

Обычно в задачах двоичной классификации мы применяем порог к вероятности, выводимой моделью, чтобы фактически классифицировать точки данных. Обычно этот порог составляет 0,5, что означает, что оценка ≥ 0,5 означает, что точка данных относится к положительному классу, если не принадлежит к отрицательному классу.

Сейчас нет жесткого правила для установки порога 0,5. Если подумать, изменение порога напрямую влияет на количество точек данных, которые мы классифицируем как положительные и отрицательные, что, в свою очередь, влияет на TP, FP, TN, FN, что снова влияет на TPR и FPR.

Итак, давайте выясним, как изменение порога влияет на частоту истинных положительных и ложных срабатываний. Это очень важно для понимания ROC.

В следующем эксперименте мы сравниваем 3 модели с разной классификационной способностью и выясняем, что ROC сообщает нам о них.

Ниже приведены три графика, которые показывают вероятности выхода трех разных моделей двоичной классификации для одних и тех же данных.

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

Учитывая оценки вероятности и порог, мы можем вычислить TP, FP, TN, FN и, в конечном итоге, TPR и FPR.

Эти числа сами по себе полезны, но не очень понятны. Построим эти значения для разных значений порога от 0 до 1.

Что мы можем сразу заметить, так это то, что область между кривой TPR и FPR уменьшается по мере уменьшения возможностей классификации модели. Что это за территория на самом деле? Имеет ли это значение, а не просто побочный эффект?

Область ч / б TPR и FPR = Область без TPR - Область без FPR

В идеальном (лучшем) классификаторе нам нужен высокий TPR (возможно, 1) и низкий FPR (возможно, 0). На графике мы можем рассматривать Площадь ниже TPR как средний TPR, т. Е. E [TPR], а Площадь ниже FPR как средний FPR, т. Е. E [FPR]. Таким образом, область ч / б представляет собой разницу E [TPR] - E [FPR]. Эта разница максимальна, когда TPR высокий или FPR низкий, что желательно.

Таким образом, мы можем сделать вывод, что область между графиками TPR и FPR на самом деле является хорошим индикатором способности модели разделять классы.

ROC - это просто модифицированный график графиков TPR, FPR и пороговых значений. Модификация заключается в том, что мы убираем порог с изображения и строим только TPR против FPR. Это эквивалентно повороту графика на 90 градусов и растяжению оси x так, чтобы кривая FPR была линейной.

Неопределенно область между TPR и FPR пропорциональна площади под кривой ROC. Пожалуйста, внимательно посмотрите на преобразованный график выше, чтобы убедиться в этом сами. По этой причине AUC (площадь под кривой ROC) используется в качестве показателя для оценки модели.

Еще один простой способ оценить график ROC - чем больше он выглядит как первый ROC ниже, тем лучше модель. Это потому, что модель с 0 FPR и 1 TPR является лучшей.

Вы можете получить код, который я использовал для создания этих графиков, здесь.

Пожалуйста, дайте мне знать, если я сделал неправильные предположения или выводы.