Если увеличивать т что будет происходить с кривой roc

Глубокое погружение в ROC-AUC

Я думаю, что большинство людей слышали о ROC-кривой или о AUC (площади под кривой) раньше. Особенно те, кто интересуется наукой о данных. Однако, что такое ROC-кривая и почему площадь под этой кривой является хорошей метрикой для оценки модели классификации?

Теория ROC-кривой

Полное название ROC — Receiver Operating Characteristic (рабочая характеристика приёмника). Впервые она была создана для использования радиолокационного обнаружения сигналов во время Второй мировой войны. США использовали ROC для повышения точности обнаружения японских самолетов с помощью радара. Поэтому ее называют рабочей характеристикой приемника.

AUC или area under curve — это просто площадь под кривой ROC. Прежде чем мы перейдем к тому, что такое ROC-кривая, нужно вспомнить, что такое матрица ошибок.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Как видно из рисунка выше, матрица ошибок — это комбинация вашего прогноза (1 или 0) и фактического значения (1 или 0). В зависимости от результата предсказания и того, корректна ли была проведена классификация, матрица разделена на 4 части. Например, true positive (истинно положительный) результат — это количество случаев, в которых вы правильно классифицируете семпл как положительный. А false positive (ложноположительный) — это число случаев, в которых вы ошибочно классифицируете семпл как положительный.

Матрица ошибок содержит только абсолютные числа. Однако, используя их, мы можем получить множество других метрик, основанных на процентных соотношениях. True Positive Rate (TPR) и False Positive Rate (FPR) — две из них.

True Positive Rate (TPR) показывает, какой процент среди всех positive верно предсказан моделью.
TPR = TP / (TP + FN).

False Positive Rate (FPR): какой процент среди всех negative неверно предсказан моделью.
FPR = FP / (FP + TN).

Хорошо, давайте теперь перейдем к кривой ROC!

Что такое ROC-кривая?

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Как вы можете видеть на графике, кривая ROC — это просто отношение TPR к FPR. Теперь вам все понятно, в заключение…

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

Все следует из того, как работает модель классификации. Когда вы строите классификационную модель, такую как дерево решений, и хотите определить, будут ли акции расти в цене или падать на основе входных данных. Модель сначала рассчитает вероятность увеличения или уменьшения, используя предоставленные вами исторические данные. После этого, основываясь на пороговом значении, она решит, будет ли результат увеличиваться или уменьшаться.

Да, ключевое слово здесь — порог. Разные пороговые значения создают разные TPR и FPR. Они представляют те самые точки, что образуют кривую ROC. Вы можете выбрать «Увеличение» в качестве предсказания модели, если полученная на основе исторических данных вероятность роста акций больше 50%. Также можете изменить пороговое значение и отобразить «Увеличение», только если соответствующая вероятность больше 90%. Если вы установите 90% порог вместо 50%, вы будете более уверены в том, что выбранные для «Увеличения» акции действительно вырастут. Но так вы можете упустить некоторые потенциально выгодные варианты.

Что значит синяя пунктирная линия на графике?

Как мы знаем, чем больше площадь под кривой (AUC), тем лучше классификация. Идеальная или наилучшая кривая — это вертикальная линия от (0,0) до (0,1), которая тянется до (1,1). Это означает: модель всегда может различить положительные и отрицательные случаи. Однако, если вы выбираете класс случайным образом для каждого семпла, TPR и FPR должны увеличиваться с одинаковой скоростью. Синяя пунктирная линия показывает кривую TPR и FPR при случайном определении positive или negative для каждого случая. Для этой диагональной линии площадь под кривой (AUC) составляет 0.5.

Что произойдет с TPR, FPR и ROC-кривой, если изменить пороговое значение?

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Посмотрите на две точки на ROC-кривой. Зеленая точка имеет очень высокий порог, это означает, что только если вы уверены на 99%, можете классифицировать случай как positive. Красная точка имеет относительно более низкий порог. Это означает, что вы можете классифицировать случай как positive, если вы уверены на 90%.

Как изменяются TPR и FPR при движении от зеленой точки к красной?

И TPR, и FPR увеличиваются. Когда вы уменьшаете порог, модель будет определять больше положительных случаев. Таким образом, TP увеличивается, как и TP/(TP + FN). С другой стороны, вы неизбежно ошибочно классифицируете некоторые отрицательные случаи как положительные из-за снижения порога, и поэтому FP и FP/(FP + TN) также увеличиваются.

Мы видим, что TPR и FPR положительно коррелируют. Вам нужно балансировать между максимальным охватом positive случаев и минимизацией неправильной классификации negative случаев.

Как выбрать оптимальную точку на кривой ROC?

Трудно определить оптимальную точку, потому что нужно выбрать наиболее подходящее пороговое значение, учитывая сферу применения модели. Однако общее правило — максимизировать разницу (TPR-FPR), которая на графике представлена вертикальным расстоянием между оранжевой и синей пунктирной линией.

Почему площадь под кривой ROC – хорошая метрика для оценки модели классификации?

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

ROC-кривая учитывает не только результаты классификации, но и вероятность предсказания всех классов. Например, если результат корректно классифицирован на основе 51% вероятности, то он, скорее всего, будет классифицирован неверно, если вы воспользуетесь другим тестовым датасетом. Кроме того, ROC-кривая также учитывает эффективность модели при различных пороговых значениях. Она является комплексной метрикой для оценки того, насколько хорошо разделяются случаи в разных группах.

Какое значение AUC является приемлемым для модели классификации?

Как я показал ранее, для задачи двоичной классификации при определении классов случайным образом, вы можете получить 0.5 AUC. Следовательно, если вы решаете задачу бинарной классификации, разумное значение AUC должно быть > 0.5. У хорошей модели классификации показатель AUC > 0.9, но это значение сильно зависит от сферы ее применения.

Как рассчитать AUC и построить ROC-кривую в Python?

Если вы просто хотите рассчитать AUC, вы можете воспользоваться пакетом metrics библиотеки sklearn (ссылка).
Если вы хотите построить ROC-кривую для результатов вашей модели, вам стоит перейти сюда.

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

Источник

Упрощение метрик ROC и AUC.

Дата публикации Mar 3, 2019

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Кривые ROC и AUC являются важными метриками оценки для расчета производительности любой модели классификации. Эти определения и жаргоны довольно распространены в сообществе машинного обучения и встречаются каждым из нас, когда мы начинаем изучать модели классификации. Однако в большинстве случаев они не полностью поняты или, скорее, неправильно поняты, и их истинная сущность не может быть использована. Под капотом это очень простые параметры расчета, которые просто нужно немного демистифицировать.

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

Рассмотримгипотетический примерсодержащий группу людей. Ось Y имеет две категории, т.е. Has Heart Disease представлены красными людьми и does not have Heart Disease представлены зелеными кружками. длинная ось х, мы имеемхолестеринуровни и классификатор пытается классифицировать людей на две категории в зависимости от их уровня холестерина.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

На что обратить внимание:

Это гипотетический пример, поэтому причины также являются гипотетическими😃

Логистическая регрессия

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Белая точка обозначает человека, имеющего более низкую вероятность сердечных заболеваний, чем человек, представленный черной точкой.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Наша модель логистической регрессии правильно классифицирует всех людей, кроме лиц 1 и 2.

Матрица путаницы

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

Специфичность и чувствительность

В приведенной выше матрице путаницы давайте заменим числа тем, что они на самом деле представляют.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Теперь мы можем рассчитать две полезные метрики на основе матрицы путаницы:

чувствительность

Чувствительность говорит нам, какой процент людейсболезни сердца были на самом деле правильно определены.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Это оказывается: 3/3 + 1 = 0,75

Это говорит нам о том, что75%людей с болезнью сердца были правильно определены нашей моделью.

специфичность

Специфика говорит нам, какой процент людейбезболезни сердца были на самом деле правильно определены.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Это оказывается: 3/3 + 1 = 0,75

Это говорит нам об этом снова75%людейбез болезней сердцабыли правильно определены нашей моделью.

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

Определение правильных порогов

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

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

Поэтому нижний порог:

Пересчет матрицы путаницы:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Поэтому нижний порог:

Пересчет матрицы путаницы:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Пороговое значение может быть установлено на любое значение от 0 до 1. Итак, как мы можем определить, какой порог является лучшим? Нужно ли экспериментировать со всеми пороговыми значениями? Каждый порог приводит к разной матрице путаницы, а количество порогов приводит к большому количеству матриц путаницы, что является не лучшим способом работы.

ROC Графики

ROC (Кривая характеристики оператора приемника) может помочь в определении наилучшего порогового значения. Он генерируется путем построения истинной положительной ставки (ось Y) и ложной положительной ставки (ось X).

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Истинный положительный показатель показывает, какая доля людей ‘с сердечными заболеваниямиe ‘были правильно классифицированы.

Неверно положительный показатель указывает на долю людей, классифицированных как ‘не имея болезни сердца’, Это ложные срабатывания.

Чтобы лучше узнать РПЦ, давайте начнем с нуля.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Матрица путаницы будет:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

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

Построение этой точки на графике РПЦ:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Любая точка на синих диагональных линиях означает, что доля правильно классифицированных образцов равна доле неправильно классифицированных образцов.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Матрица путаницы будет:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Построим эту точку (0.5,1) на графике ROC.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Это означает, что этот порог лучше, чем предыдущий.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Построим эту точку (0,0,75) на графике ROC.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

График, в этом случае, будет в (0,0):

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Затем мы можем соединить точки, что дает нам ROC-график. График ROC суммирует матрицы путаницы, созданные для каждого порога, без необходимости их фактического расчета.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

AUC обозначаетПлощадь под кривой, AUC дает показатель успешной классификации по логистической модели. AUC позволяет легко сравнить кривую ROC одной модели с другой.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

ППКдля красногоРПЦкривая больше, чемППКдля голубыхROС кривой. Это означает, что красная кривая лучше. Если бы красная ROC-кривая была сгенерирована, скажем, Случайным лесом и Blue ROC с помощью Логистической регрессии, мы могли бы заключить, что классификатор Random лучше справился с классификацией пациентов.

Вывод

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

Источник

Как понять ROC-кривые с помощью Python

Если вы погуглите ROC curve machine learning, то Википедия выдаст вам такой ответ: Кривая рабочих характеристик приёмника, или ROC-кривая, представляет собой график функции, который иллюстрирует диагностические возможности системы двоичного классификатора при изменении её порога распознавания.

Ещё одно частое описание ROC-кривой: ROC-кривая отражает чувствительность модели к разным порогам классификации. Новичков эти определения могут сбить с толку. Попробуем разобраться и развить представление о ROC-кривых.

Что за чертовщина эта ROC-кривая?

Вариант, как понять ROC-кривую: она описывает взаимосвязь между чувствительностью модели (TPR, или true positives rate — доля истинно положительных примеров) и её специфичностью (описываемой в отношении долей ложноположительных результатов: 1-FPR).

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocЕсли увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

FPR — доля ложноположительных примеров, false positives rate. Это соотношение между ложными срабатываниями (количество прогнозов, ошибочно отнесённых в положительные), и всеми доступными отрицательными классами. Математически:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocЕсли увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Обобщая: вы сравниваете, как чувствительность модели меняется по отношению к ложно положительным долям на разных порогах отсечения. Модель опирается на порог отсечения, чтобы принимать решения по входным данным и относить их к положительным.

Разделение проблемы с порогами отсечения

Поначалу интуиция толкала к пониманию роли порогов отсечения. Мне помогла мысленная картина:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocНа примере лабораторных мышей

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

Порог соответствует переменной T (например, значение между 0 и 1), служит границей принятия решения для классификатора и влияет на компромисс между TPR и FPR. Давайте напишем код, чтобы визуализировать все компоненты.

Визуализация ROC-кривой

Сгенерировать данные с помощью drawdata для Jupyter

Импортировать сгенерированные данные в фреймворк pandas

Подобрать модель логистической регрессии к данным

Получить прогнозы модели логистической регрессии в виде значений вероятности

Установить другие пороги отсечения

Сделать окончательные выводы

Импортируем зависимости

Сгенерируем данные с помощью пакета drawdata для блокнотов Jupyter

Что получается на выходе:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Импортируем данные в фреймворк pandas

Подберём модель логистической регрессии к данным

Получим прогнозы модели логистической регрессии в виде значений вероятности

Установим другие пороговые значения

Визуализируем ROC-кривую

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Сделаем окончательные выводы

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

Как нам выбрать лучший порог?

Простой способ: выбрать тот порог, у которого максимальная сумма из истинно положительных и ложно отрицательных долей (1-FPR).

Другой критерий: простой выбор точки, ближайшей к левому верхнему углу ROC-кривой. Однако такой критерий подразумевает, что истинно положительный и истинно отрицательный показатели имеют одинаковый вес. В некоторых случаях, такая выборка не подходит, поскольку отрицательное влияние ложно положительных долей весомее, чем влияние истинно положительных.

Итоговые выводы о ROC-кривой

Я считаю, что в долгосрочной перспективе машинного обучения полезно потратить время на освоение оценочных показателей. В этой статье вы узнали:

Базовое представление о том, как работают ROC-кривые

Как пороги отсечения влияют на соотношение чувствительности и особенности модели

Как использовать ROC-кривые для выбора оптимальных порогов отсечения

Источник

Метрики в задачах машинного обучения

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

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

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

Метрики в задачах классификации

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

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Accuracy, precision и recall

Перед переходом к самим метрикам необходимо ввести важную концепцию для описания этих метрик в терминах ошибок классификации — confusion matrix (матрица ошибок).
Допустим, что у нас есть два класса и алгоритм, предсказывающий принадлежность каждого объекта одному из классов, тогда матрица ошибок классификации будет выглядеть следующим образом:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocЕсли увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc
Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocTrue Positive (TP)False Positive (FP)
Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocFalse Negative (FN)True Negative (TN)

Здесь Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc— это ответ алгоритма на объекте, а Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc— истинная метка класса на этом объекте.
Таким образом, ошибки классификации бывают двух видов: False Negative (FN) и False Positive (FP).

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Accuracy

Интуитивно понятной, очевидной и почти неиспользуемой метрикой является accuracy — доля правильных ответов алгоритма:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Эта метрика бесполезна в задачах с неравными классами, и это легко показать на примере.

Допустим, мы хотим оценить работу спам-фильтра почты. У нас есть 100 не-спам писем, 90 из которых наш классификатор определил верно (True Negative = 90, False Positive = 10), и 10 спам-писем, 5 из которых классификатор также определил верно (True Positive = 5, False Negative = 5).
Тогда accuracy:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Однако если мы просто будем предсказывать все письма как не-спам, то получим более высокую accuracy:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

При этом, наша модель совершенно не обладает никакой предсказательной силой, так как изначально мы хотели определять письма со спамом. Преодолеть это нам поможет переход с общей для всех классов метрики к отдельным показателям качества классов.

Precision, recall и F-мера

Для оценки качества работы алгоритма на каждом из классов по отдельности введем метрики precision (точность) и recall (полнота).

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Precision можно интерпретировать как долю объектов, названных классификатором положительными и при этом действительно являющимися положительными, а recall показывает, какую долю объектов положительного класса из всех объектов положительного класса нашел алгоритм.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Именно введение precision не позволяет нам записывать все объекты в один класс, так как в этом случае мы получаем рост уровня False Positive. Recall демонстрирует способность алгоритма обнаруживать данный класс вообще, а precision — способность отличать этот класс от других классов.

Как мы отмечали ранее, ошибки классификации бывают двух видов: False Positive и False Negative. В статистике первый вид ошибок называют ошибкой I-го рода, а второй — ошибкой II-го рода. В нашей задаче по определению оттока абонентов, ошибкой первого рода будет принятие лояльного абонента за уходящего, так как наша нулевая гипотеза состоит в том, что никто из абонентов не уходит, а мы эту гипотезу отвергаем. Соответственно, ошибкой второго рода будет являться «пропуск» уходящего абонента и ошибочное принятие нулевой гипотезы.

Precision и recall не зависят, в отличие от accuracy, от соотношения классов и потому применимы в условиях несбалансированных выборок.
Часто в реальной практике стоит задача найти оптимальный (для заказчика) баланс между этими двумя метриками. Классическим примером является задача определения оттока клиентов.
Очевидно, что мы не можем находить всех уходящих в отток клиентов и только их. Но, определив стратегию и ресурс для удержания клиентов, мы можем подобрать нужные пороги по precision и recall. Например, можно сосредоточиться на удержании только высокодоходных клиентов или тех, кто уйдет с большей вероятностью, так как мы ограничены в ресурсах колл-центра.

Обычно при оптимизации гиперпараметров алгоритма (например, в случае перебора по сетке GridSearchCV ) используется одна метрика, улучшение которой мы и ожидаем увидеть на тестовой выборке.
Существует несколько различных способов объединить precision и recall в агрегированный критерий качества. F-мера (в общем случае Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc) — среднее гармоническое precision и recall :

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocв данном случае определяет вес точности в метрике, и при Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocэто среднее гармоническое (с множителем 2, чтобы в случае precision = 1 и recall = 1 иметь Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc)
F-мера достигает максимума при полноте и точности, равными единице, и близка к нулю, если один из аргументов близок к нулю.
В sklearn есть удобная функция _metrics.classificationreport, возвращающая recall, precision и F-меру для каждого из классов, а также количество экземпляров каждого класса.

classprecisionrecallf1-scoresupport
Non-churned0.880.970.93941
Churned0.600.250.35159
avg / total0.840.870.841100

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

AUC-ROC и AUC-PR

При конвертации вещественного ответа алгоритма (как правило, вероятности принадлежности к классу, отдельно см. SVM) в бинарную метку, мы должны выбрать какой-либо порог, при котором 0 становится 1. Естественным и близким кажется порог, равный 0.5, но он не всегда оказывается оптимальным, например, при вышеупомянутом отсутствии баланса классов.

Одним из способов оценить модель в целом, не привязываясь к конкретному порогу, является AUC-ROC (или ROC AUC) — площадь (Area Under Curve) под кривой ошибок (Receiver Operating Characteristic curve ). Данная кривая представляет из себя линию от (0,0) до (1,1) в координатах True Positive Rate (TPR) и False Positive Rate (FPR):

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

TPR нам уже известна, это полнота, а FPR показывает, какую долю из объектов negative класса алгоритм предсказал неверно. В идеальном случае, когда классификатор не делает ошибок (FPR = 0, TPR = 1) мы получим площадь под кривой, равную единице; в противном случае, когда классификатор случайно выдает вероятности классов, AUC-ROC будет стремиться к 0.5, так как классификатор будет выдавать одинаковое количество TP и FP.
Каждая точка на графике соответствует выбору некоторого порога. Площадь под кривой в данном случае показывает качество алгоритма (больше — лучше), кроме этого, важной является крутизна самой кривой — мы хотим максимизировать TPR, минимизируя FPR, а значит, наша кривая в идеале должна стремиться к точке (0,1).

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Критерий AUC-ROC устойчив к несбалансированным классам (спойлер: увы, не всё так однозначно) и может быть интерпретирован как вероятность того, что случайно выбранный positive объект будет проранжирован классификатором выше (будет иметь более высокую вероятность быть positive), чем случайно выбранный negative объект.

Рассмотрим следующую задачу: нам необходимо выбрать 100 релевантных документов из 1 миллиона документов. Мы намашинлернили два алгоритма:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Скорее всего, мы бы выбрали первый алгоритм, который выдает очень мало False Positive на фоне своего конкурента. Но разница в False Positive Rate между этими двумя алгоритмами крайне мала — всего 0.0019. Это является следствием того, что AUC-ROC измеряет долю False Positive относительно True Negative и в задачах, где нам не так важен второй (больший) класс, может давать не совсем адекватную картину при сравнении алгоритмов.

Для того чтобы поправить положение, вернемся к полноте и точности :

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Здесь уже заметна существенная разница между двумя алгоритмами — 0.855 в точности!

Precision и recall также используют для построения кривой и, аналогично AUC-ROC, находят площадь под ней.

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Здесь можно отметить, что на маленьких датасетах площадь под PR-кривой может быть чересчур оптимистична, потому как вычисляется по методу трапеций, но обычно в таких задачах данных достаточно. За подробностями о взаимоотношениях AUC-ROC и AUC-PR можно обратиться сюда.

Logistic Loss

Особняком стоит логистическая функция потерь, определяемая как:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

здесь Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc— это ответ алгоритма на Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc-ом объекте, Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc— истинная метка класса на Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc-ом объекте, а Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой rocразмер выборки.

Подробно про математическую интерпретацию логистической функции потерь уже написано в рамках поста про линейные модели.
Данная метрика нечасто выступает в бизнес-требованиях, но часто — в задачах на kaggle.
Интуитивно можно представить минимизацию logloss как задачу максимизации accuracy путем штрафа за неверные предсказания. Однако необходимо отметить, что logloss крайне сильно штрафует за уверенность классификатора в неверном ответе.

Отметим, как драматически выросла logloss при неверном ответе и уверенной классификации!
Следовательно, ошибка на одном объекте может дать существенное ухудшение общей ошибки на выборке. Такие объекты часто бывают выбросами, которые нужно не забывать фильтровать или рассматривать отдельно.
Всё становится на свои места, если нарисовать график logloss:

Если увеличивать т что будет происходить с кривой roc. Смотреть фото Если увеличивать т что будет происходить с кривой roc. Смотреть картинку Если увеличивать т что будет происходить с кривой roc. Картинка про Если увеличивать т что будет происходить с кривой roc. Фото Если увеличивать т что будет происходить с кривой roc

Видно, что чем ближе к нулю ответ алгоритма при ground truth = 1, тем выше значение ошибки и круче растёт кривая.

Подытожим:

Полезные ссылки

Благодарности

Спасибо mephistopheies и madrugado за помощь в подготовке статьи.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *