Устранение путаницы с метриками классификации.

«Определение гения - это взять комплексное и сделать его простым», - Альберт Эйнштейн.

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

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

Ссылка

Статья представляет собой адаптацию отличного видео Джоша Стармера о ROC и AUC. Я рекомендую вам посмотреть это видео для большей ясности. У Джоша также есть много других видеороликов по различной статистике и концепциям машинного обучения.

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

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

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

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

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

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

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

Однако, если мы хотим классифицировать людей по двум категориям, нам нужен способ превратить вероятности в классификации. Один из способов - установить порог 0,5. Затем классифицируйте людей с вероятностью сердечного заболевания ›0,5 как« страдающих сердечным заболеванием »и классифицируйте людей с вероятностью сердечного заболевания‹ 0,5 как «без сердца болезнь ».

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

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

  • Мы знаем, что у человека 1 болезнь сердца, но наша модель классифицирует это иначе.
  • Мы также знаем, что у человека 2 нет сердечного заболевания, но опять же наша модель неправильно его классифицирует.

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

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

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

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

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

  • Истинно-положительные результаты (TP): люди, страдающие сердечным заболеванием, а также у которых, по прогнозам, были сердечные заболевания.
  • Истинно отрицательные результаты (TN): люди, у которых не было сердечных заболеваний и которые, по прогнозам, не страдали сердечными заболеваниями.
  • Ложноотрицательные результаты (ЛО): люди, у которых есть сердечные заболевания, но согласно прогнозам, нет.
  • Ложноположительные результаты (FP): люди, которые не страдали сердечными заболеваниями, но согласно прогнозу, они есть.

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

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

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

Получается: 3/3 + 1 = 0,75.

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

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

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

Получается: 3/3 + 1 = 0,75.

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

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

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

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

  • Установка порогового значения 0,1

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

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

Следовательно, нижний порог:

  • Увеличивает количество ложных срабатываний
  • Уменьшает количество ложноотрицательных результатов.

Пересчет матрицы неточностей:

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

  • Установка порога на 0,9

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

Следовательно, нижний порог:

  • Уменьшает количество ложных срабатываний
  • Увеличивает количество ложных отрицаний.

Пересчет матрицы неточностей:

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

Графики ROC

ROC (кривая характеристик оператора приемника) может помочь в выборе наилучшего порогового значения. Он создается путем построения графика истинного положительного результата (ось y) против ложного положительного результата (ось x).

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

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

Чтобы лучше узнать ОКР, нарисуем ее с нуля.

  • Пороговое значение, при котором все люди классифицируются как страдающие сердечными заболеваниями.

Матрица путаницы будет следующей:

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

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

Нанесение этой точки на график ROC:

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

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

Матрица путаницы будет следующей:

Изобразим эту точку (0,5,1) на графике ROC.

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

  • Теперь, если продолжить увеличивать пороговые значения и достичь точки, где мы получим следующую матрицу путаницы:

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

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

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

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

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

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

AUC

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

AUC красной кривой ROC больше, чем AUC синей кривой RO C. Это означает, что красная кривая лучше. Если бы красная кривая ROC была сгенерирована, скажем, с помощью случайного леса, а синяя ROC - с помощью логистической регрессии, мы могли бы сделать вывод, что случайный классификатор лучше справился с классификацией пациентов.

Заключение

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