본문 바로가기
machine learning

precision at K, MAP, recall at K

by 단창 2019. 10. 12.

ranking system 또는 recommander 시스템에서 좋은 추천(랭크)를 했는지 평가하는 방법으로 precision at K, recall at K 

을 살펴보자. 

 

Top K개의 결과로 Precision(정밀도)를 계산 -> Precision at K 

추천 된 결과가 관련(relevant) 있는것은 O로 없는 것은 X로 표기하면, 

 

O,X,O,O,O,X 로 결과물의 관련도로 표기 될 수 있다. 

 

Precision at 3 의 값은 O,X,O 니까 2/3

Precision at 4 의 값은 O,X,O,O 니까 3/4

Precision at 5 의 값은 4/5 이다. 

 

Recall at K 는 K 개 추천했을때, 추천되어야했을 relevant한 item이 몇개 추천되어져 있느냐를 나타내는 measure이다.

 

MAP(Mean Average Precision) 

첫번째, 검색결과 (추천결과) 가 10개 가 있고 그중 관련있는(relevant)한것이 5개 

추천결과의 관련성(relevant) O, X, O, X, X, O, X, X, O, O

 

첫번째 추천 결과(Ranking1) : relevant한것은 5개

relevant O X O X X O X X O O
precision 1 0.5 2/3 0.5 2/5 0.5 3/7 3/8 4/9 0.5
recall 1/5 1/5 2/5 2/5 2/5 3/5 3/5 3/5 4/5 5/5

 

두번째 추천 결과(Ranking2) : relevant한것은 3개 

relevant X O X X O X O X X X
precision 0 0.5 0.33 0.25 0.4 0.33 3/7 3/8 3/9 3/10
recall 0 0.33 0.33 0.33 0.66 0.66 1 1 1 1

 

추천 결과가 hit했을때만 precision의 평균

average precision query1 : (1+2/3+0.5+4/9+0.5) / 5 = 0.62

average precision query2 : (0.5 + 0.4+ 0.43) /3 = 0.44

(0.62+0.44)/2 = 0.53

MAP 는 0.53

 

 

 

 

반응형

'machine learning' 카테고리의 다른 글

텐서(Tensor)란  (0) 2020.03.03
keras dataset : imdb  (0) 2020.03.02
negative sampling  (0) 2019.08.12
Word2Vec 의 학습  (0) 2019.05.13
Early stopping in GAN  (0) 2018.12.05