Какие правильные значения для точности и вспомнить, когда знаменатели равны 0?

16

Точность определяется как:

р = истинные позитивы / (истинные позитивы + ложные позитивы)

Какое значение точности, если (истинные положительные + ложные положительные) = 0? Это просто не определено?

Тот же вопрос для отзыва:

r = истинные позитивы / (истинные позитивы + ложные негативы)

В этом случае, каково значение отзыва, если (истинные положительные + ложные отрицательные) = 0?

PS Этот вопрос очень похож на вопрос. Каковы правильные значения для точности и отзыва в крайних случаях? ,

Раффи Хачадурян
источник
1
Хех, это даже ответил в дубликате; но давайте назовем это хорошим дубликатом.

Ответы:

9

Ответы на связанный ранее вопрос также применимы и здесь.

Если (истинные положительные + ложные отрицательные) = 0, то во входных данных нет положительных случаев, поэтому в любом анализе этого случая нет информации и, следовательно, нет заключения о том, как обрабатываются положительные случаи. Вы хотите, чтобы N / A или что-то подобное в качестве отношения отношения, избегая деления на ноль ошибок

Если (истинные положительные + ложные положительные) = 0, то все случаи были предсказаны как отрицательные: это один конец кривой ROC. Опять же, вы хотите распознать и сообщить об этой возможности, избегая ошибки деления на ноль .

Генри
источник
Спасибо Генри за ответ. Если я правильно понимаю, в первом случае вы не хотите распознавать и сообщать о результате, тогда как во втором случае вы это делаете . Это верно?
Раффи Хачадурян,
Да: в случае отсутствия положительных во входных данных точность не имеет смысла; в случае непредсказуемых случаев вы хотите сообщить, что тест был настроен как крайне отрицательный.
Генри
5

Интересный ответ предлагается здесь: https://github.com/dice-group/gerbil/wiki/Precision,-Recall-and-F1-measure

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

В некоторых редких случаях вычисление Precision или Recall может вызвать деление на 0. Что касается точности, это может произойти, если в ответе аннотатора нет результатов и, таким образом, истинные и ложные положительные значения равны 0 Для этих особых случаев мы определили, что если истинные положительные, ложные положительные и ложные отрицательные значения равны 0, то точность, отзыв и мера F1 равны 1. Это может произойти в тех случаях, когда золотой стандарт содержит документ без каких-либо аннотации и аннотатор (правильно) не возвращает аннотации. Если истинные положительные значения равны 0, а один из двух других счетчиков больше 0, точность, отзыв и F1-мера равны 0.

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

Шири
источник
1

При оценке классификатора при высоких порогах точность может (часто на самом деле) не быть 1, когда отзыв равен 0. Обычно это N / A! Я думаю, что что-то не так в том, как люди строят кривую P / R. Избегание выборок N / A - это предвзятость в том смысле, что вы избегаете выборок сингулярности. Я вычислил среднюю точность по отношению к среднему отзыву, игнорируя выборки N / A, и у меня никогда не было классификатора, начинающегося с 1 для 0, для мелкой нейронной сети при обнаружении объекта. Это также справедливо для кривых, рассчитанных по числам tp, fp, fn. Это довольно легко проверить с помощью бумаги и карандаша с одним изображением. Например: у меня есть классификатор, который выводит для одного изображения: preds = [. 7 .6 .5 .1 .05] true = [nynny] Путем вычисления матриц путаницы с различными порогами мы имеем: tp = [2 1 1 1 0 0], fn = [0 1 1 1 2 2], fp = [3 3 2 1 1 0]. rec rec = [1 .5 .5. 0 0], а точность = [. 4 .25 1/3. 0 0 NaN]. Я не понимаю, как имеет смысл заменить NaN или точность (@ rec == 0) на 1. 1 должна быть верхней границей, а не значением, которое мы заменяем точностью (@ rec == 0).

Джонатан Бланшетт
источник