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

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

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

https://miro.medium.com/max/1533/1*gscG4JdjnyU5QkqNDqBg_w.png

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

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

https://miro.medium.com/max/1577/1*FKXzF6DYSP2mV4HUBftRgg.png

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

https://miro.medium.com/max/810/0*XEO3pwAee7tBT_D1.png

Сочетание точности и вспомнить

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

Счет F1 заключается в том, что среднее значение точности и отзыва, принимая во внимание обе рассматриваемые метрики, в следующем уравнении:

https://miro.medium.com/max/338/1*UJxVqLnbSj42eRhasKeLOA.png

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

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

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

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

https://miro.medium.com/max/717/1*CPnO_bcdbE8FXTejQiV2dg.png

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

https://miro.medium.com/max/1219/1*6NkN_LINs2erxgVJ9rkpUA.png

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

Кривая ROC показывает истинное положительное значение по оси y в сравнении с ложным положительным значением по оси x. истинное положительное значение (TPR) – это то, что отзыв и, следовательно, ложное положительное значение (FPR) – это вероятность предупреждения. Оба эти показателя часто вычисляются из матрицы путаницы:

https://miro.medium.com/max/1082/1*Uh9YUp632ktSd75bZDeB0Q.png

https://miro.medium.com/max/443/0*2iHR8dFXev5GWo_f.png

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

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

Справка

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

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

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

Ложноположительные: точки данных, помеченные как положительные, которые буквально отрицательные.

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

Ложно-отрицательные: точки данных, помеченные как отрицательные, которые буквально положительны.

Вспомнить и точные метрики

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

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

F1 балл: один метрик, который смешивает вызов и точность, используя среднее значение

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

Матрица путаницы: показывает конкретные и прогнозируемые метки из проблемы классификации

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

Площадь под кривой (AUC): метрика для расчета общей производительности поддерживаемой классификационной модели площади под кривой ROC

Пример применения

https://miro.medium.com/max/1016/1*3SjX3LaLUfJ3Yf7xU1QhmA.png

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

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

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

https://miro.medium.com/max/1441/1*XQOYd2mheHyVVR9H-ENtIQ.png

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

https://miro.medium.com/max/1360/1*HzWxvbikCtiB-QtFb48WoQ.png

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

https://miro.medium.com/max/555/1*ZAH33g5FD9xYZRadgmqWVw.png

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

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

https://miro.medium.com/max/529/1*TESjAFBurN7RVXyb5KDOxg.png

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