Помимо точности: точность и отзывчивость

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

Вы бы поверили тому, кто утверждал, что создал модель полностью в своей голове, чтобы идентифицировать террористов, пытающихся сесть на самолет с точностью более 99%? Что ж, вот модель: просто обозначьте каждого человека, вылетающего из аэропорта США, не террористом. Учитывая 800 миллионов пассажиров в среднем на рейсах в США в год и 19 (подтвержденных) террористов, которые садились на рейсы в США в период с 2000 по 2017 год, эта модель достигает поразительной точности 99,9999999%! Это может показаться впечатляющим, но я подозреваю, что Министерство внутренней безопасности США не позвонит в ближайшее время, чтобы купить эту модель. Хотя это решение имеет почти идеальную точность, в этой проблеме точность явно не является адекватным показателем!

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

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

Вы могли заметить кое-что в этом уравнении: если мы обозначим всех людей как террористов, то наш отзыв будет равен 1.0! У нас есть идеальный классификатор, верно? Не совсем так. Как и в случае с большинством концепций в науке о данных, существует компромисс между метриками, которые мы выбираем для максимизации. В случае отзыва, когда мы увеличиваем отзыв, мы уменьшаем точность. Опять же, мы интуитивно знаем, что модель, в которой 100% пассажиров обозначаются как террористы, вероятно, бесполезна, потому что тогда нам придется запретить полеты каждому человеку. Статистика дает нам словарь, чтобы выразить нашу интуицию: эта новая модель будет страдать от низкой точности или способности модели классификации идентифицировать только релевантные точки данных.

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

Теперь мы видим, что наша первая модель, в которой все люди были помечены как не террористы, оказалась не очень полезной. Хотя у него была почти идеальная точность, у него было 0 точности и 0 отзывов, потому что не было истинных положительных результатов! Скажем, мы слегка модифицируем модель и правильно идентифицируем отдельного человека как террориста. Теперь наша точность будет равна 1.0 (без ложных срабатываний), но наш отзыв будет очень низким, потому что у нас все еще будет много ложноотрицательных результатов. Если мы впадем в другую крайность и классифицируем всех пассажиров как террористов, у нас будет отзыв 1.0 - мы поймем каждого террориста, но наша точность будет очень низкой, и мы задержим много невинных людей. Другими словами, по мере увеличения точности мы уменьшаем отзыв и наоборот.

Сочетание точности и отзыва

В некоторых ситуациях мы можем знать, что хотим максимизировать отзыв или точность за счет другой метрики. Например, при предварительном скрининге пациентов для последующего обследования нам, вероятно, потребуется отзыв около 1,0 - мы хотим найти всех пациентов, у которых действительно есть заболевание, - и мы можем согласиться с низкой точностью, если стоимость последующего наблюдения - до экспертизы не имеет значения. Однако в случаях, когда мы хотим найти оптимальное сочетание точности и отзыва, мы можем объединить две метрики, используя так называемый показатель F1.

Оценка F1 представляет собой гармоническое среднее значение точности и запоминания с учетом обоих показателей в следующем уравнении:

Мы используем гармоническое среднее вместо простого среднего, потому что оно наказывает экстремальные значения. Классификатор с точностью 1,0 и отзывом 0,0 имеет простое среднее значение 0,5, но оценку F1 равную 0. Оценка F1 придает одинаковый вес обоим показателям и является конкретным примером общей метрики Fβ, где β может быть скорректировано до уделять больше внимания отзыву или точности. (Существуют и другие показатели для объединения точности и отзыва, такие как Среднее геометрическое точность и отзыв, но чаще всего используется оценка F1.) Если мы хотим создать сбалансированную модель классификации с оптимальным балансом отзыва и отзыва. точность, то мы пытаемся максимизировать оценку F1.

Визуализация точности и воспоминаний

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

Прежде всего, это матрица путаницы, которая полезна для быстрого вычисления точности и отзыва с учетом предсказанных меток из модели. Матрица неточностей для бинарной классификации показывает четыре различных результата: истинно положительный, ложноположительный, истинно отрицательный и ложноотрицательный. Фактические значения образуют столбцы, а прогнозируемые значения (метки) образуют строки. Пересечение строк и столбцов показывает один из четырех результатов. Например, если мы прогнозируем, что точка данных положительная, но на самом деле она отрицательная, это ложное срабатывание.

Переход от матрицы неточностей к отзыву и точности требует нахождения соответствующих значений в матрице и применения уравнений:

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

Кривая ROC отображает процент истинных положительных результатов по оси Y в сравнении с частотой ложных срабатываний по оси абсцисс. Уровень истинных положительных результатов (TPR) - это отзыв, а уровень ложных положительных результатов (FPR) - это вероятность ложной тревоги. Оба они могут быть вычислены из матрицы неточностей:

Типичная кривая ROC показана ниже:

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

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

Резюме

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

Четыре результата двоичной классификации

  • Истинно положительные: точки данных, помеченные как положительные, но на самом деле положительные.
  • Ложноположительные результаты: точки данных, помеченные как положительные, но на самом деле отрицательные.
  • Истинно отрицательные: точки данных, помеченные как отрицательные, но на самом деле отрицательные.
  • Ложноотрицательные: точки данных, помеченные как отрицательные, но на самом деле положительные.

Показатели отзыва и точности

  • Напоминание: способность модели классификации идентифицировать все релевантные экземпляры.
  • Точность: способность модели классификации возвращать только релевантные экземпляры.
  • Оценка F1: единый показатель, сочетающий отзывчивость и точность с использованием гармонического среднего.

Визуализация воспоминаний и точности

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

Пример приложения

Наша задача будет заключаться в том, чтобы диагностировать 100 пациентов с заболеванием, которое присутствует у 50% населения в целом. Мы предположим модель черного ящика, в которой мы вводим информацию о пациентах и ​​получаем оценку от 0 до 1. Мы можем изменить порог для маркировки пациента как положительного (имеющего заболевание), чтобы максимизировать эффективность классификатора. Мы будем оценивать пороги от 0,0 до 1,0 с шагом 0,1, на каждом шаге вычисляя точность, отзыв, F1 и положение на кривой ROC. Ниже приведены результаты классификации для каждого порога:

Мы сделаем один пример расчета отзыва, точности, частоты истинных положительных и ложных срабатываний при пороговом значении 0,5. Сначала делаем матрицу путаницы:

Мы можем использовать числа в матрице для расчета отзыва, точности и оценки F1:

Затем мы вычисляем частоту истинно положительных и ложных срабатываний, чтобы найти координаты y и x кривой ROC.

Чтобы получить всю кривую ROC, мы выполняем этот процесс на каждом пороге. Как вы могли подумать, это довольно утомительно, поэтому вместо того, чтобы делать это вручную, мы используем такой язык, как Python, чтобы сделать это за нас! Блокнот Jupyter с расчетами находится на GitHub, чтобы любой мог увидеть его реализацию. Окончательная кривая ROC показана ниже с пороговыми значениями выше точек.

Здесь мы можем увидеть, как все концепции собраны вместе! При пороговом значении 1,0 мы не классифицируем пациентов как имеющих заболевание и, следовательно, имеем отзыв и точность 0,0. По мере уменьшения порога отзыв увеличивается, потому что мы идентифицируем больше пациентов, страдающих этим заболеванием. Однако по мере того, как наша запоминаемость увеличивается, наша точность уменьшается, потому что помимо увеличения истинных положительных результатов, мы увеличиваем ложные положительные результаты. При пороге 0,0 наш отзыв идеален - мы находим всех пациентов с этим заболеванием, - но наша точность невысока, потому что у нас много ложных срабатываний. Мы можем двигаться по кривой для данной модели, изменяя порог и выбирая порог, который максимизирует оценку F1. Чтобы сдвинуть всю кривую, нам нужно будет построить другую модель.

Окончательная статистика модели для каждого порога приведена ниже:

На основе оценки F1 лучшая модель получается при пороговом значении 0,5. Если бы мы хотели в большей степени подчеркнуть точность или отзывчивость, мы могли бы выбрать соответствующую модель, которая лучше всего работает по этим показателям.

Выводы

Мы склонны использовать точность, потому что каждый имеет представление о ее значении, а не потому, что это лучший инструмент для решения задачи! Хотя более подходящие метрики, такие как отзыв и точность, могут показаться чуждыми, у нас уже есть интуитивное представление о том, почему они лучше работают для некоторых проблем, таких как несбалансированные задачи классификации. Статистика дает нам формальные определения и уравнения для расчета этих показателей. Наука о данных - это знание правильных инструментов для работы, и часто нам нужно выходить за рамки точности при разработке моделей классификации. Знание об отзыве, точности, F1 и кривой ROC позволяет нам оценивать модели классификации и должно заставить нас скептически относиться к любому, кто рекламирует только точность модели, особенно для несбалансированных проблем. Как мы видели, точность не дает полезной оценки по нескольким важным проблемам, но теперь мы знаем, как использовать более разумные метрики!

Как всегда, приветствую конструктивную критику, отзывы и обсуждения. Со мной можно связаться в Twitter @koehrsen_will.