False positive что это
false positive
Смотреть что такое «false positive» в других словарях:
false-positive — adj relating to or being an individual or a test result that is erroneously classified in a positive category (as of diagnosis) because of imperfect testing methods or procedures <a false positive pregnancy test> compare false negative… … Medical dictionary
false positive — n something that is wrongly thought or shown to be a particular thing, especially after a scientific test or ↑research ▪ 50% of the 170 compounds were judged to be carcinogenic, but some of these might be false positives. ▪ Many substances give… … Dictionary of contemporary English
false positive — false positive/negative/ phrase an incorrect result of a scientific test One of the biggest complaints about current tests is that they give false positive results. Thesaurus: scientific research and relating to scientific researchhyponym… … Useful english dictionary
false positive — noun a) A result of a test that shows as present something that is absent. A false positive from a cancer screening test will unnecessarily frighten a healthy person, a false negative will deprive them of timely treatment. b) type I error A false … Wiktionary
False positive — A result that is erroneously positive when a situation is normal. An example of a false positive: a particular test designed to detect cancer of the toenail is positive but the person does not have toenail cancer. * * * 1. A test result that… … Medical dictionary
False Positive — Die Artikel falsch positiv und Fehler 1. Art überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein … Deutsch Wikipedia
False positive — Die Artikel falsch positiv und Fehler 1. Art überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein … Deutsch Wikipedia
false-positive — /fawls poz i tiv/, n. a test result that is incorrect because the test indicated a condition or finding that does not exist. Cf. false negative. * * * … Universalium
false-positive — ˈ ̷ ̷ˈ ̷ ̷( ̷ ̷) ̷ ̷ noun : an individual under test whose laboratory data or scores classify him especially because of imperfection or hypersensitivity of the method in a reference group or diagnostic category he does not belong in * * * /fawls… … Useful english dictionary
false positive — A positive assay result that should have been negative … Glossary of Biotechnology
Взаимосвязь понятий «уровень значимости», достоверность и ошибка первого рода
При работе со статистическим отчетом, научной статьей или диссертацией Вы постоянно сталкиваетесь таким термином, как уровень значимости или альфа (ошибка первого рода), чаще всего этот уровень задается относительно 5% или вероятности р=о,05. Решение о достоверности различий или «статистически значимых различиях» принимается относительно этого порогового значения. В данной статье мы предлагаем читателю разобраться в том, почему так важен этот уровень и что он значит в практическом смысле.
Определение (словарь Дж. М. Ласта):
ОШИБКА ТИПА I (ERROR TYPE I; син. alpha-error — ошибка альфа)
ошибочное отклонение нулевой гипотезы, т.е. утверждение о том, что различия существуют, тогда как их нет.
Немного о смысле уровня значимости и достовернности различий
Для понимания темы статистических ошибок мы перейдем к простейшей матрице соотношения статистики (что она нам говорит по результатам статистических тестов) и реальности. Так вот, предположим, что статистика нам говорит о существовании связей, о существовании различий. В реальности же они также существуют, тогда мы считаем этот результат правильным положительным или truth positive (ТР). Например, статистика нам говорит об отсутствии связей, об отсутствии различий, а в реальности же они действительно существуют. Такая ситуация называется ложноотрицательной или false-negative (FN). Соответственно существуют ситуации, когда статистика нам говорит о существовании каких-то определенных взаимосвязей или о существовании различий, которые в реальности не существуют. Тогда это называется ложноположительной или false-positive (FP). И последний случай касается отсутствия по данным статистических тестов того, чего в действительности не существует, различий в действительности нет. И эта ситуация именуется как truth negative (TN) или ложноотрицательный результат.
Рисунок 1. Матрица соотношения реальность-результаты статистического теста. TN (true negative) — верноотрицательный, FN (false negative) — ложноотрицательный, FP (false positive) — ложноположительный, TP (true positive) — верно позитивный.
Так вот, как видно из этой матрицы, у нас существуют 2 ситуации, в которых мы можем ошибаться: это false-positive и truth negative. Это как раз два типа ошибок, о которых я говорил в начале этого блока: о ложноотрицательной ошибке и ложноположительной. Что на самом деле это значит?
Что в какой-то ситуации мы можем пересмотреть, а в какой-то – недосмотреть.
Пересмотреть, то есть найти то, чего в действительности нет, это является false-positive – это ошибка первого рода.
Или недосмотреть, то есть упустить то, что в действительности существует в реальности, но по данным статистических тестов мы чего-то не находим – это ложноотрицательный результат или ошибка второго рода.
Давайте нанесем те термины, которые, возможно, вы уже слышали – «уровень достоверности», «достоверные различия». Что это за слово такое «достоверность»? Оно относится как раз к ошибке первого рода и обозначается буквой α. Вы наверняка знаете обозначение уровня в р=0,05. Уровень достоверности в 0,05 как раз является критическим значением для результатов большинства статистических тестов ( 5 %). Мы делаем вывод относительно этих 5 %. Что в практическом смысле это значит? Что в 95 % мы находим различия, которые действительно существуют, и в 5 % даем себе возможность переобнаружить то, чего в действительности не существует в реальности.
Что касается ошибки второго рода, то здесь это уже не 5 %. И мы задаем либо 20, либо 10 %, что-то в этом диапазоне, это ошибка в 0,2; в 0,1. И как раз мы подходим к следующему чрезвычайно важному статистическому понятию как «мощность исследования». Мощность исследования это: (1 – β), где β это ошибка второго рода. Если стандартный уровень ошибки это 0,2 и 0,1, то мы получаем, что мощность исследования в норме составляет 0,8 или 0,9 (чаще, конечно, 0,8).
NB! по уровню значимости
Уровень значимости, то есть ошибки первого рода составляет чаще всего относительно уровня в 5 %, это уровень той ошибки, при которой мы даем возможность себе «перенайти» то, что в действительности не существует. В ошибке второго рода мы даем себе определенный люфт до 20 % не обнаружить того, что в действительности существует, то есть когда статистические тесты нам скажут, что чего-то нет, а в реальности эти различия существуют.
Почему DataScientist-ы не используют ошибки первого и второго рода
Вчера мне в очередной раз пришлось объяснять почему DataScientist-ы не используют ошибки первого и второго рода и зачем же ввели полноту и точность. Вот прямо заняться нам нечем, лишь бы новые критерии вводить.
И если ошибка второго рода выражается просто:
где Π — это полнота;
то вот ошибка первого рода весьма нетривиально выражается через полноту и точность (см.ниже).
Но это лирика. Самый важный вопрос:
Почему в DataScience используют полноту и точность и почти никогда не говорят об ошибках первого и второго рода?
Кто не знает или забыл — прошу под кат.
Бизнес-задача
Так как Хабр — это блог IT-шников, постараюсь по минимуму использовать мат.абстракции и рассказывать сразу на примере. Предположим, что мы решаем задачу Fraud-мониторинга в ДБО условного банка Roga & Copyta, сокращённо R&C.
Предположим, что у мы разработали некую автоматизированную экспертную систему (ЭС), определяющую для каждой платёжной транзакции: является ли данная транзакция мошеннической (fraud, F) или легитимной (genuine, G).
Необходимо определить «хорошие» критерии оценки качества системы и дать формулы расчета этих критериев.
Так как Roga & Copyta — это хоть и маленький, но всё же банк, то в нём работают люди меркантильные и ничего кроме денег их не интересует. Поэтому разрабатываемые критерии должны максимально прозрачно показывать: насколько выгодно им использовать нашу ЭС? Может быть выгодно установить ЭС конкурентов?
События и вероятности
Для каждой транзакции могут быть определены четыре события:
Очевидно, что Fr и Gr — несовместные события; аналогично F и G — несовместные. По этой причине разумно рассматривать четыре вероятности:
Аббревиатуры читаются так:
Так же нам будут интересны и «обратные» условные вероятности:
Например вероятность означает следующее:
Какова вероятность того, что транзакция действительно окажется мошеннической, если ЭС «определила» это событие как мошенническое.
Не следует путать с
, которое можно определить словами:
Какова вероятность того, что ЭС «назовёт» транзакцию мошеннической, если данная транзакция действительно мошенническая.
Аналогично можно определить словами и другие условные вероятности.
Вспомним определения
В статистике любят говорить о нулевой гипотезе (H0) и альтернативной (H1) гипотезе. Обычно под нулевой гипотезой определяют «естественное» состояние. В случае фрод-мониторинга «естественным» состоянием является то, что транзакция легитимная. Это действительно разумно, хотя бы по той причине, что количество мошеннических транзакций гораздо меньше количества легитимных.
Поэтому за нулевую гипотезу примем Gr, а за альтернативную Fr.
Ошибка первого рода (O1) — это вероятность того, что ЭС «определит» транзакцию как мошенническую, при условии, что она легитимная.
Ошибка второго рода (O2) — это вероятность того, что ЭС «определит» транзакцию как легитимную, при условии, что она мошенническая.
Замечание: часто ошибку первого рода называют false positives а ошибку второго рода как false negatives. В том числе, таковы определения в википедии. Это верно по сути. Но
и
. Очень многие новички в DataScience делают такую ошибку и путаются.
Полнота (П) и точность (Т) по определению:
Т.е. полнота — это вероятность того, что ЭС «определит» транзакцию мошеннической, при условии, что она действительно мошенническая. А точность — это вероятность того, что транзакция действительно мошенническая, при условии, что ЭС «определила» транзакцию как мошенническую.
Полноту и точность можно выразить через tp, fp, fn следующим образом:
Выводим тупо в лоб.
Для полноты:
Следует заметить, что именно эти формулы очень частно приводят в качестве определения полноты и точности. Тут вопрос во вкусе. Можно сказать, что квадрат — это прямоугольник, у которого все стороны равны и доказать, что ромб с прямым углом — это квадрат. А можно наоборот. Например, когда я учился в школе, у меня квадрат определяли как ромб с прямым углом и доказывали, что прямоугольник с равными сторонами — это квадрат.
Но все же определение полноты как и точности как T
мне кажется более правильным. Сразу понятно в чем физический смысл этих величин. Понятно, зачем они нужны.
Бизнес-смысл полноты и точности
Предположим, что для Roga & Copyta мы создали систему с полнотой в 80% и точностью в 10%.
Предположим, что без ЭС банк теряет на мошенничестве 1 миллиард тугриков (₮) в год. Это значит, что благодаря ЭС они смогут предотвратить хищение на сумму в 800 миллионов ₮. Останется еще 200 миллионов ₮ — это ущерб банку (или клиентам банка), который не смогла предотвратить ЭС.
А что на счет точности в 10%? Данная величина значит, что из 100 сработок ЭС только 10 будут попадать по цели, а в остальных случаях мы приостановим легитимные транзакции. Хорошо это или плохо?
Во-первых при остановки транзакции банк совершает какие-либо действия. Например звонит клиентам с просьбой подтвердить операции.
Во-вторых заблокировать легитимные транзакции тоже не всегда хорошая идея. Представьте, что вы сидите с девушкой в ресторане, просите счёт, оплачиваете картой… А тут бах… ЭС ошибочно подсчитала что вы — мошенник… Наверное не очень удобно будет перед барышней… Но мы, чтобы не усложнять, пока опустим эту проблему.
Итак, предположим один звонок стоит 1000 ₮. Так же предположим что средний чек хакера у нас составляет 100 тысяч ₮.
Так как мы предотвращаем мошенничества на 800 миллионов ₮, то в среднем у нас будет 8000 правильных мошеннических сработок. Но 8000 — это, судя по точности, лишь 10%; следовательно всего мы позвоним 80000 раз. Умножаем эту цифру на стоимость одного звонка (1000 ₮) и получаем аж 80 миллионов ₮!
Итоговый ущерб в год для банка R&C равен: 200 + 80 = 280 миллионов ₮. Но без ЭС банк терял бы один один миллиард. Следовательно выгода R&C составляет 720 миллионов тугриков.
Следует различать полноту и точность по количеству транзакций и по суммам. Это четыре разные величины. Здесь я «смешал все в кучу», что, конечно не верно! ;)) Будем считать что полнота и точность 80% и 10% как по количеству транзакций, так и по денежным суммам.
Бизнес-смысл ошибок первого и второго рода
Ошибка второго рода элементарно выводится через полноту:
Вывод формулы элементарен (см. следующий параграф)
Поэтому что считать — полноту или упущенный фрод (ошибка второго рода) особой разницы не представляет.
А что на счет ошибки первого рода?
Это вероятность того, что ЭС назовёт мошеннической операцией транзакцию, при условии что она легитимная. Проблема в том, что легитимных транзакций существенно больше мошеннических. Есть банки, в которых более 50 платёжных транзакций в секунду… И это совсем не предел.
R&C — банк небольшой, там всего пять платёжных транзакций в секунду. Давайте посчитаем, сколько это в сутки:
В прошлом параграфе мы узнали, что в R&C 80000 сработок в год, это значит что в сутки в среднем 80000 / 365 = 219,17 сработок. Из них только 10% попали в цель (такова точность), то есть 22. Значит остальные — подлинные: 432000 — 22 = 431978.
Так как полнота 80%, то из этих 22 мы только 4.4 будем упускать.
Значит ошибка первого рода:
Слишком маленькая величина! Бизнес не любит такие числа. Так же сложнее, чем для точности высчитать пользу и ущерб для бизнеса. И есть еще одна проблема:
через ошибку первого рода, можно косвенно понять об объемах платёжных операций в банке!
Что касается точности, то такой проблемы нет. Специалисты из отдела безопасности R&C знают об объемах мошенничества. Они узнают о допустимой нагрузке на контактный центр у самой главной девочки + спрашивают руководство банка о желаемой полноте. Зная абсолютную нагрузку, желаемую полноту и объем фрода можно без труда вычислить приемлемую точность. Эти две цифры вписываются в техническое задание (или тендер).
Разработчику выдают выборку из мошеннических транзакций и легитимных. Если выборка репрезентативна, этих данных достаточно.
«Неправильность» точности с точки зрения чистой математики
Если объем транзакций увеличится в два раза, то точность уменьшится. Если объем мошенничества увеличится в два раза, то точность так же будет больше… С ошибкой первого рода такой проблемы нет, поэтому с точки зрения «чистой математики», эта величина гораздо более «правильная».
Но на практике, если и резко увеличивается объем мошенничества, то как правило это фрод нового типа и ЭС просто не обучена его ловить… Точность останется той же (а вот полнота уменьшиться, т.к. появится фрод, который мы не умеем ловить). Что касается увеличения количества легитимных транзакций — то это увеличение постепенное и никаких «рывков» не будет.
Поэтому на практике точность — замечательный, понятный для бизнеса критерий оценки качества ЭС.
Вывод ошибок первого рода и второго рода из полноты и точности
Но может быть существует изящная формула вывода ошибки первого рода через точность?
Вот с ошибкой второго рода как все красиво:
К сожалению с O1 так изящно не получится. Вот отношение через точность (Т) и полноту (П):
Эй! Ты что такой ленивый! А ну давай сам попробуй!
Из и
можно составить выражение:
Уже из этого отношения легко получить формулу для O1
Заключение
Точность и полнота «не хуже» и «не лучше» чем ошибки первого и второго рода. Всё зависит от задачи. Мы же не едим столовой ложкой торт, а чайной борщ? Хотя это возможно.
Точность и полнота более понятные критерии качества. Ими легче оперировать. С помощью них просто вычислить предотвращённый ущерб в задаче фрод-мониторинга.
Если вы обнаружили описку или грамматическую ошибку — прошу написать в личку.
Метрики в задачах машинного обучения
В задачах машинного обучения для оценки качества моделей и сравнения различных алгоритмов используются метрики, а их выбор и анализ — непременная часть работы датасатаниста.
В этой статье мы рассмотрим некоторые критерии качества в задачах классификации, обсудим, что является важным при выборе метрики и что может пойти не так.
Метрики в задачах классификации
Для демонстрации полезных функций sklearn и наглядного представления метрик мы будем использовать датасет по оттоку клиентов телеком-оператора.
Accuracy, precision и recall
Перед переходом к самим метрикам необходимо ввести важную концепцию для описания этих метрик в терминах ошибок классификации — confusion matrix (матрица ошибок).
Допустим, что у нас есть два класса и алгоритм, предсказывающий принадлежность каждого объекта одному из классов, тогда матрица ошибок классификации будет выглядеть следующим образом:
True Positive (TP) | False Positive (FP) | |
False Negative (FN) | True Negative (TN) |
Здесь — это ответ алгоритма на объекте, а
— истинная метка класса на этом объекте.
Таким образом, ошибки классификации бывают двух видов: False Negative (FN) и False Positive (FP).
Accuracy
Интуитивно понятной, очевидной и почти неиспользуемой метрикой является accuracy — доля правильных ответов алгоритма:
Эта метрика бесполезна в задачах с неравными классами, и это легко показать на примере.
Допустим, мы хотим оценить работу спам-фильтра почты. У нас есть 100 не-спам писем, 90 из которых наш классификатор определил верно (True Negative = 90, False Positive = 10), и 10 спам-писем, 5 из которых классификатор также определил верно (True Positive = 5, False Negative = 5).
Тогда accuracy:
Однако если мы просто будем предсказывать все письма как не-спам, то получим более высокую accuracy:
При этом, наша модель совершенно не обладает никакой предсказательной силой, так как изначально мы хотели определять письма со спамом. Преодолеть это нам поможет переход с общей для всех классов метрики к отдельным показателям качества классов.
Precision, recall и F-мера
Для оценки качества работы алгоритма на каждом из классов по отдельности введем метрики precision (точность) и recall (полнота).
Precision можно интерпретировать как долю объектов, названных классификатором положительными и при этом действительно являющимися положительными, а recall показывает, какую долю объектов положительного класса из всех объектов положительного класса нашел алгоритм.
Именно введение precision не позволяет нам записывать все объекты в один класс, так как в этом случае мы получаем рост уровня False Positive. Recall демонстрирует способность алгоритма обнаруживать данный класс вообще, а precision — способность отличать этот класс от других классов.
Как мы отмечали ранее, ошибки классификации бывают двух видов: False Positive и False Negative. В статистике первый вид ошибок называют ошибкой I-го рода, а второй — ошибкой II-го рода. В нашей задаче по определению оттока абонентов, ошибкой первого рода будет принятие лояльного абонента за уходящего, так как наша нулевая гипотеза состоит в том, что никто из абонентов не уходит, а мы эту гипотезу отвергаем. Соответственно, ошибкой второго рода будет являться «пропуск» уходящего абонента и ошибочное принятие нулевой гипотезы.
Precision и recall не зависят, в отличие от accuracy, от соотношения классов и потому применимы в условиях несбалансированных выборок.
Часто в реальной практике стоит задача найти оптимальный (для заказчика) баланс между этими двумя метриками. Классическим примером является задача определения оттока клиентов.
Очевидно, что мы не можем находить всех уходящих в отток клиентов и только их. Но, определив стратегию и ресурс для удержания клиентов, мы можем подобрать нужные пороги по precision и recall. Например, можно сосредоточиться на удержании только высокодоходных клиентов или тех, кто уйдет с большей вероятностью, так как мы ограничены в ресурсах колл-центра.
Обычно при оптимизации гиперпараметров алгоритма (например, в случае перебора по сетке GridSearchCV ) используется одна метрика, улучшение которой мы и ожидаем увидеть на тестовой выборке.
Существует несколько различных способов объединить precision и recall в агрегированный критерий качества. F-мера (в общем случае ) — среднее гармоническое precision и recall :
в данном случае определяет вес точности в метрике, и при
это среднее гармоническое (с множителем 2, чтобы в случае precision = 1 и recall = 1 иметь
)
F-мера достигает максимума при полноте и точности, равными единице, и близка к нулю, если один из аргументов близок к нулю.
В sklearn есть удобная функция _metrics.classificationreport, возвращающая recall, precision и F-меру для каждого из классов, а также количество экземпляров каждого класса.
class | precision | recall | f1-score | support |
---|---|---|---|---|
Non-churned | 0.88 | 0.97 | 0.93 | 941 |
Churned | 0.60 | 0.25 | 0.35 | 159 |
avg / total | 0.84 | 0.87 | 0.84 | 1100 |
Здесь необходимо отметить, что в случае задач с несбалансированными классами, которые превалируют в реальной практике, часто приходится прибегать к техникам искусственной модификации датасета для выравнивания соотношения классов. Их существует много, и мы не будем их касаться, здесь можно посмотреть некоторые методы и выбрать подходящий для вашей задачи.
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):
TPR нам уже известна, это полнота, а FPR показывает, какую долю из объектов negative класса алгоритм предсказал неверно. В идеальном случае, когда классификатор не делает ошибок (FPR = 0, TPR = 1) мы получим площадь под кривой, равную единице; в противном случае, когда классификатор случайно выдает вероятности классов, AUC-ROC будет стремиться к 0.5, так как классификатор будет выдавать одинаковое количество TP и FP.
Каждая точка на графике соответствует выбору некоторого порога. Площадь под кривой в данном случае показывает качество алгоритма (больше — лучше), кроме этого, важной является крутизна самой кривой — мы хотим максимизировать TPR, минимизируя FPR, а значит, наша кривая в идеале должна стремиться к точке (0,1).
Критерий AUC-ROC устойчив к несбалансированным классам (спойлер: увы, не всё так однозначно) и может быть интерпретирован как вероятность того, что случайно выбранный positive объект будет проранжирован классификатором выше (будет иметь более высокую вероятность быть positive), чем случайно выбранный negative объект.
Рассмотрим следующую задачу: нам необходимо выбрать 100 релевантных документов из 1 миллиона документов. Мы намашинлернили два алгоритма:
Скорее всего, мы бы выбрали первый алгоритм, который выдает очень мало False Positive на фоне своего конкурента. Но разница в False Positive Rate между этими двумя алгоритмами крайне мала — всего 0.0019. Это является следствием того, что AUC-ROC измеряет долю False Positive относительно True Negative и в задачах, где нам не так важен второй (больший) класс, может давать не совсем адекватную картину при сравнении алгоритмов.
Для того чтобы поправить положение, вернемся к полноте и точности :
Здесь уже заметна существенная разница между двумя алгоритмами — 0.855 в точности!
Precision и recall также используют для построения кривой и, аналогично AUC-ROC, находят площадь под ней.
Здесь можно отметить, что на маленьких датасетах площадь под PR-кривой может быть чересчур оптимистична, потому как вычисляется по методу трапеций, но обычно в таких задачах данных достаточно. За подробностями о взаимоотношениях AUC-ROC и AUC-PR можно обратиться сюда.
Logistic Loss
Особняком стоит логистическая функция потерь, определяемая как:
здесь — это ответ алгоритма на
-ом объекте,
— истинная метка класса на
-ом объекте, а
размер выборки.
Подробно про математическую интерпретацию логистической функции потерь уже написано в рамках поста про линейные модели.
Данная метрика нечасто выступает в бизнес-требованиях, но часто — в задачах на kaggle.
Интуитивно можно представить минимизацию logloss как задачу максимизации accuracy путем штрафа за неверные предсказания. Однако необходимо отметить, что logloss крайне сильно штрафует за уверенность классификатора в неверном ответе.
Отметим, как драматически выросла logloss при неверном ответе и уверенной классификации!
Следовательно, ошибка на одном объекте может дать существенное ухудшение общей ошибки на выборке. Такие объекты часто бывают выбросами, которые нужно не забывать фильтровать или рассматривать отдельно.
Всё становится на свои места, если нарисовать график logloss:
Видно, что чем ближе к нулю ответ алгоритма при ground truth = 1, тем выше значение ошибки и круче растёт кривая.
Подытожим:
Полезные ссылки
Благодарности
Спасибо mephistopheies и madrugado за помощь в подготовке статьи.