"Mean Average Precision"의 두 판 사이의 차이
ph
잔글 |
잔글 |
||
11번째 줄: | 11번째 줄: | ||
AP도 말 그대로 P의 Average. 단, correct query에 대해서만 계산한다. 위 그림의 Ranking #1에서 \(1 + 1/2 + 2/3 + 2/4 + 2/5 + 3/6 + \cdots\)이 아니고, \(1 + 2/3 + 3/6 + \cdots\)인 이유. | AP도 말 그대로 P의 Average. 단, correct query에 대해서만 계산한다. 위 그림의 Ranking #1에서 \(1 + 1/2 + 2/3 + 2/4 + 2/5 + 3/6 + \cdots\)이 아니고, \(1 + 2/3 + 3/6 + \cdots\)인 이유. | ||
+ | |||
+ | 다음과 같이 나타내기도 하는데, $$\sum \text{precision} \cdot \Delta \text{recall} $$ | ||
+ | AP@<i>k</i>까지 일반적으로 적용되는 식은 아니어서 그냥 모르는게 낫다. | ||
+ | |||
+ | AP@<i>k</i>는 <i>k</i>번째 query까지의 AP를 나타낸다. actual(=answer)의 길이보다 k가 더 큰 경우(=query의 길이가 더 긴 경우) query에는 필연적으로 오답이 있을수밖에 없으므로, AP를 계산할 때 <i>k</i>로 나눈다. 위 그림에서 보면 마치 correct query의 개수로 나누는 듯이 보이지만, <c>min(len(actual), k)</c>로 나누는 것임에 주의한다. <c>k</c>는 당연히 prediction(=query)의 길이보다 작거나 같아야 한다. | ||
+ | |||
+ | 가장 정확한 이해는 역시 코드를 보는 것인데, [https://github.com/benhamner/Metrics Ben Hamner라는 사람이 만든 테스트코드]를 보면 된다. <ref>python코드 : https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/average_precision.py </ref> |
2017년 7월 31일 (월) 14:43 판
mAP
한방에 이해가는 그림
말 그대로 AP의 평균이 mAP.
AP도 말 그대로 P의 Average. 단, correct query에 대해서만 계산한다. 위 그림의 Ranking #1에서 \(1 + 1/2 + 2/3 + 2/4 + 2/5 + 3/6 + \cdots\)이 아니고, \(1 + 2/3 + 3/6 + \cdots\)인 이유.
다음과 같이 나타내기도 하는데, $$\sum \text{precision} \cdot \Delta \text{recall} $$ AP@k까지 일반적으로 적용되는 식은 아니어서 그냥 모르는게 낫다.
AP@k는 k번째 query까지의 AP를 나타낸다. actual(=answer)의 길이보다 k가 더 큰 경우(=query의 길이가 더 긴 경우) query에는 필연적으로 오답이 있을수밖에 없으므로, AP를 계산할 때 k로 나눈다. 위 그림에서 보면 마치 correct query의 개수로 나누는 듯이 보이지만, min(len(actual), k)로 나누는 것임에 주의한다. k는 당연히 prediction(=query)의 길이보다 작거나 같아야 한다.
가장 정확한 이해는 역시 코드를 보는 것인데, Ben Hamner라는 사람이 만든 테스트코드를 보면 된다. [1]