Как сформировать кривую Precision-Recall, когда у меня есть только одно значение для PR?

12

У меня есть задание по извлечению данных, где я создаю систему поиска изображений на основе контента. У меня 20 изображений 5 животных. Итак, всего 100 изображений.

Моя система возвращает 10 наиболее релевантных изображений для входного изображения. Теперь мне нужно оценить производительность моей системы с помощью кривой Precision-Recall. Однако я не понимаю концепцию кривой точности-отзыва. Допустим, моя система возвращает 10 изображений для изображения горилл, но только 4 из них - гориллы. Остальные 6 изображений возвращены другие животные. Таким образом,

  • Точность есть 4/10 = 0.4(релевантности возвращены) / (все возвращены)
  • отзыв 4/20 = 0.2(релевантные возвращены) / (все релевантные)

Так что у меня есть только точка <0.2,0.4>, а не кривая. Как у меня есть кривая (то есть набор точек)? Должен ли я изменить количество возвращаемых изображений (в моем случае это значение равно 10)?

Джефф
источник
2
Большинство моделей назначают вероятность принадлежности к классу, а не к самому классу - или вы выдавливаете один из классификатора. Кривая получается путем изменения вероятности отсечения. Скорее всего, вы получите более подробные ответы, если упомянете используемый вами классификатор.
Чарльз
Я вычисляю векторы признаков (цвет, текстуру и форму) и получаю оценки сходства для каждого, суммирую их для общего показателя сходства, затем сортирую по убыванию. Топ 10 индексов изображений являются наиболее актуальными. Я могу получить индекс класса из индекса изображения, так как изображения упорядочены (20 горилл, 20 жирафов и т. Д.). Надеюсь, я дал понять, поскольку не до конца понимаю классификатор / дескриптор понятий и т. Д.
Джефф
Понял, что я плохо прочитал вопрос. Думал, у тебя была проблема двух классов (горилла / не горилла). С большим количеством классов, кроме меня, это может быть полезно: stats.stackexchange.com/questions/2151/…
charles

Ответы:

11

Генерация кривой PR аналогична генерации кривой ROC. Чтобы нарисовать такие графики, вам нужен полный рейтинг тестового набора. Чтобы сделать это ранжирование, вам нужен классификатор, который выводит значение решения, а не двоичный ответ. Значение решения - это мера уверенности в прогнозе, которую мы можем использовать для ранжирования всех тестовых экземпляров. В качестве примера, значения решения логистической регрессии и SVM представляют собой вероятность и (подписанное) расстояние до разделяющей гиперплоскости соответственно.

Если вы распоряжаетесь значениями решения, вы определяете набор пороговых значений для указанных значений решения. Эти пороговые значения являются различными настройками классификатора: например, вы можете контролировать уровень консерватизма. Для логистической регрессии порог по умолчанию будет но вы можете перейти во весь диапазон . Как правило, пороговые значения выбираются в качестве уникальных значений решений, полученных вашей моделью для тестового набора.f(x)=0.5(0,1)

При каждом выборе порога ваша модель дает разные прогнозы (например, разное количество положительных и отрицательных предсказаний). Таким образом, вы получаете набор кортежей с разной точностью и вызываете их на каждом пороге, например, набор кортежей . Кривая PR строится на основе пар .(Ti,Pi,Ri)(Pi,Ri)

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

Марк Клазен
источник
Мне не ясно, можете ли вы проработать подробный пример, подобный ситуации извлечения изображений животных ОП?
MR