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 |