Как объединить Ложные положительные стороны и ложные отрицательные стороны в одну единственную меру

I'am, пытающийся измерять уровень программы машинного зрения, которая пытается обнаружить объекты в видео. У меня есть 3 различных версии программы, которые имеют различные параметры. Я сравнил каждого из этого, присваивает версию и получил 3 пар (Ложный процент положительных сторон, Ложный отрицательный процент).

Теперь я хочу сравнить версии друг с другом, и затем интересно, имеет ли смысл комбинировать ложные положительные стороны и ложные отрицательные стороны в единственное значение и использование, что, чтобы сделать comparation., например, взять уравнение falsePositives/falseNegatives и видеть, который меньше.

6
задан Amro 26 July 2010 в 20:04
поделиться

6 ответов

Пара других возможных решений:

- Ваш коэффициент ложноположительных (fp) и ложноотрицательных (fn) результатов может зависеть от порога. Если вы построите кривую, где y-значение равно (1-fn), а x-значение равно (fp), вы построите кривую Receiver-Operator-Characteristic (ROC). Площадь под ROC-кривой (AUC) является одним из популярных показателей качества.

- AUC может быть взвешен, если есть определенные области, представляющие интерес

- Сообщите о коэффициенте равных ошибок. Для некоторого порога fp=fn. Сообщите это значение.

4
ответ дан 8 December 2019 в 17:18
поделиться

В дополнение к популярному показателю Площадь под кривой ROC (AUC) , упомянутому @ alchemist-al , существует оценка, которая объединяет оба точность и отзыв (которые определены в терминах TP / FP / TN / FN), называемые F-мерой , которая изменяется от 0 до 1 (0 - это худший, 1 лучший):

F-measure = 2*precision*recall / (precision+recall)

где

precision = TP/(TP+FP)  ,  recall = TP/(TP+FN)
6
ответ дан 8 December 2019 в 17:18
поделиться

Вам нужно учитывать, насколько "важны" ложноположительные результаты по отношению к ложноотрицательным.

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

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

1
ответ дан 8 December 2019 в 17:18
поделиться

Это зависит от того, сколько деталей вы хотите получить при сравнении.

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

С другой стороны, если вы хотите использовать результаты для более глубокого определения того, подходит ли процесс для решения конкретной задачи, то я бы предположил, что их раздельное хранение - хорошая идея. Например, иногда ложноотрицательные результаты - это совсем другая проблема, чем ложноположительные результаты в реальном мире. Избежал ли робот объекта, которого там не было... или не заметил, что спускается с обрыва?

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

1
ответ дан 8 December 2019 в 17:18
поделиться

Если вы хотите максимизировать как истинные положительные, так и истинные отрицательные результаты, вы можете использовать диагностическую эффективность:

Диагностическая эффективность = Чувствительность * Специфичность

Где ...

Чувствительность = TP / (TP + FN)

Специфичность = TN / (TN + FP)

(TP = количество истинных положительных результатов, FN = количество ложноотрицательные, TN = количество истинно отрицательных, FP = количество ложных срабатываний)

Эта метрика хорошо работает для наборов данных, которые имеют несбалансированное количество классов (т. е. набор данных искажен)

1
ответ дан 8 December 2019 в 17:18
поделиться

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

  • умножить каждый экземпляр на соответствующий весовой коэффициент;

  • затем возведите их в квадрат;

  • суммируйте члены;

  • возьмите квадратный корень

Получится одно число - что-то вроде "общей ошибки".

1
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: