Вычисление отзыва и точность для оценки системы CBIR
Я реализовал CBIR с SIFT в сочетании с другими алгоритмами, основанными на функциях (с OpenCV и Python3), теперь я должен оценить, как работает их комбинация (то есть SIFT/SURF, ORB/BRISK...).
Я обнаружил, что могу использовать Precision |TP| / (|TP| + |FP|) и Recall |TP| / (|TP| + |FN|). Я знаю, что TP - правильный положительный результат, что FN - это соответствующие документы, которые не возвращены, и что FP - это документы, которые возвращены, но не имеют отношения
Я рассчитываю свои совпадения с BF и предполагаю, что:
matches=bf.knnMatch(descriptor1, descriptor2, k=2)
мои TP+FP- спички с тестом на рацион - моя TP
Как я могу рассчитать свой FN? Такие как совпадения, которые актуальны, но не возвращены?
Обратите внимание, что я просто формулирую гипотезу, поэтому, пожалуйста, исправьте меня, если я ошибаюсь.
Я хотел бы получить некоторую помощь по конкретной реализации, например, где эти данные в конкретном случае сопоставления изображений.
В качестве альтернативы, можете ли вы предложить мне, как оценить систему CBIR на основе обнаружения и описания функций?
1 ответ
Я наконец-то нашел ответ на свой вопрос, может, он кому-нибудь поможет!
Существует разница между расчетами PRECISION и RECALL в КОНТЕКСТЕ ПОЛУЧЕНИЯ ИНФОРМАЦИИ и КОНТЕКСТЕ КЛАССИФИКАЦИИ.
Для поиска информации:
precision = (relevant documents + retrieved documents) / retrieved documents
recall = (relevant documents + retrieved dcuments) / relevant documents
Для контекста классификации можно говорить о матрице смешения:
precision = TP/TP+FP
recall = TP/TP+FN
В моем случае, например, не было возможности использовать путаницу матрицы.