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

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

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

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

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

Контекст

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

Правда и Ложь, Положительное и Отрицательное

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

Наша модель может правильно (true) или неправильно (false) предсказывать фактический класс, будь то положительный или отрицательный. Таким образом, у нас есть четыре разновидности категоризации, которые часто обобщаются в матрице путаницы:

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

Короче говоря, нам нужны новые показатели.

Точность

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

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

Точность

Точность связана с долей истинных положительных результатов и всех положительных результатов:

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

[для запоминания: иногда мне бывает полезно, чтобы Pзаключение имело дело только с Pзапрошеннымиположительными результатами]

Возвращаясь к примеру с мошенничеством: точность покажет, какая часть выявленных случаев на самом деле является мошенничеством. Предположим, мы правильно определили 800 (истинно положительный) и неправильно идентифицировали еще 700 (ложноположительный); наша точность будет 0,53.

Отзывать

Отзыв описывает долю истинныхположительных результатов и всехположительных результатов (т. е. включая ложноотрицательные):

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

[Rотзыв можно запомнить, рассматривая Rнастоящие положительные результаты (обратите внимание, что ложноотрицательный результат на самом деле является положительным)]

Опять же, рассмотрим пример мошенничества. Предположим, мы определили 800 экземпляров (истинно положительных) из 1000 (включая 200ложноотрицательных результатов). Наш отзыв будет 0,8.

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

F-баллы

Мы установили, что точность и полнота дают полезную информацию, но было бы удобно выразить баланс между ними одним числом. Это то, что делает F-оценка. Точнее, это гармоническое среднее точности и полноты. Самый простой (и наиболее распространенный) F-показатель — это сбалансированный F-показатель, также известный как F_1. 1 означает, что точность и полнота одинаково важны. Он обозначается

Обратите внимание, что при умножении точности и полноты (числитель) расхождения между обоими показателями наказываются. Если у нас точность 0,8 и полнота 0,2, F-показатель будет всего 0,32. Если оба равны 0,5, F-оценка также равна 0,5. Альтернативные F-оценки (например, F_0.5, F_2) придают большее значение либо точности, либо отзыву.

Кривая точного отзыва

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

Площадь под кривой (AUC) дает представление о качестве модели. У идеальной модели AUC=1, а точность и полнота всегда равны 1,0. «Хорошая» модель склонилась бы к точке (1,1), покрывая большую площадь.

Как бороться с дисбалансом классов?

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

Часто проблемы с отзывом и/или точностью возникают из-за дисбаланса классов. Если количество элементов в наборе в подавляющем большинстве случаев отрицательное, и мы оптимизируем точность, небольшая доля положительных результатов вряд ли повлияет на общую производительность. Помните, что прямая функция потерь одинаково измеряет все неправильные классификации (ложноотрицательные и ложноположительные).

Полная оценка здесь невозможна, но есть два основных направления решения: (i) мы взвешиваем одни ошибочные классификации тяжелее, чем другие, и (ii) мы тренируемся на подмножествах, содержащих меньше отрицательных значений.

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

Это работает и наоборот. Если мы разработаем спам-фильтр, нам лучше убедиться, что обнаруженное электронное письмо действительно является спамом. Если вы сомневаетесь, лучше позволить пользователю решить, является ли электронное письмо актуальным. Здесь мы предпочитаем высокую точность и будем больше всего наказывать ложные срабатывания (не спам, а помеченные как таковые).

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

Заключительные слова

«Какие ложные классификации оказывают наибольшее влияние на реальный мир?»

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

Основные выводы

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

дальнейшее чтение