Прецизионные кривые полноты в области поиска изображений

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

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


person Hrid Biswas    schedule 09.09.2018    source источник


Ответы (1)


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

Представьте, что у вас всего 1000 изображений, и только 100 изображений относятся к лету. Если вы возьмете 500 ближайших изображений к некоторому «летнему» изображению, точность в лучшем случае (когда первые изображения всегда принадлежат классу) будет:

precision(summer) = 100 / (100 + 400) = (retrieved summer images) / (retrieved summer images + other retrieved images) = 0.2

И вспомните:

recall(summer) = 100 / (100 + 0) = (retrieved summer images) / (retrieved summer images + not retrieved summer images) = 1

Как вы можете видеть, у него высокая полнота, потому что были извлечены все летние изображения, но низкая точность, потому что есть только 100 изображений, а 400 других изображений не относятся к этому классу.

Теперь, если вы возьмете первые 100 изображений вместо 500, и полнота, и точность будут равны 1.

Если вы сделаете 50 первых изображений, то точность будет по-прежнему равна 1, но полнота упадет до 0,5.

Таким образом, изменяя количество изображений, вы можете получить баллы за кривую точности воспроизведения. Для вышеописанного примера такими точками будут (0,2, 1), (1, 1), (1, 0,5).

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

person lawful_neutral    schedule 24.09.2018
comment
Я действительно ценю твою помощь. Спасибо. - person Hrid Biswas; 24.09.2018
comment
@HridBiswas Я только что немного отредактировал комментарий, потому что неправильно понял вопрос. В любом случае, я надеюсь, что не ответил слишком поздно :) - person lawful_neutral; 24.09.2018
comment
на самом деле моя проблема немного отличается от того, как вы описали, но все же это очень полезно для меня, и я могу изменить ваше решение по-своему. Но у меня есть одна проблема: если я возьму значения точности и отзыва из вашего примера, то есть (0,2, 1), (1, 1), (1, 0,5), то я вижу, что для отзыва 1 у меня есть 2 значения значения, о.2 и 1 (так как (0.2, 1), (1, 1)), то как я могу построить это? заранее спасибо - person Hrid Biswas; 26.09.2018
comment
@HridBiswas, если вы погуглите кривые точности-отзыва, вы увидите, что многие графики имеют прямые линии, то есть есть два или более значения отзыва для одинаковой точности (и наоборот). classeval.files.wordpress. com/2015/06/ например, это изображение показывает идеальную точность и полноту, а точность равна 1 при изменении полноты с 0 на 1. - person lawful_neutral; 27.09.2018