Open utterances-bot opened 3 years ago
안녕하세요, 글 너무 잘 읽었습니다.
또 한가지 중요한 점은 앞에 곱해지는 값인 1/m은 변하지 않는 값이므로 설사 뒷쪽에 추천하는 모든 값이 틀리더라도 AP값은 변하지 않는다는 것. 즉, 추천을 더 많이 한다하여 AP는 절대 내려가지 않는다는 의미이며, (우리가 노력해야하는 부분은 제대로된 추천을 최대한 앞에 하는 것이라는 것이다.)
이 부분에 대한 제 이해가 조금 부족한 것 같습니다. 마지막의 괄호 부분은 이해했으나, 앞 부분을 이해하지 못했습니다.
또 한가지 중요한 점은 앞에 곱해지는 값인 1/m은 변하지 않는 값이므로 설사 뒷쪽에 추천하는 모든 값이 틀리더라도 AP값은 변하지 않는다는 것.
[1,0,0]에 비해 [1,0,1], [1,1,0], [1,1,1]의 AP 값은 높을 것이라고 생각했습니다.
즉, 추천을 더 많이 한다하여 AP는 절대 내려가지 않는다는 의미이며,
이 경우는 m이 변하는 상황을 생각해보면, [1,0,0]에 비해 [1,0,0,0], [1,0,0,0,0] 등의 AP 값이 더 낮을 것이라고 생각했습니다. 따라서, 추천을 더 많이 하는 경우 AP는 내려갈 수 있지 않을까요?
감사합니다. 어지러운 현 상황에서 건강하시길 바랍니다.
안녕하세요! 죄송하게도 답글이 너무 늦었습니다.
내려가지 않는다
가 맞습니다! 감사합니다. :pray: 또한, 남겨주신 댓글을 보고 다시 찾아보고 고민을 해봤는데 m은 변하는 값이 맞습니다. 그나마 변하지 않는 값은 K라고 할 수 있습니다. 우리가 N개를 추천하지만 N > K인 경우에 Top K까지만 보고 평가를 하겠다고 결정하는 것이어서 그렇습니다.
어쨌든 그러한 이유로 해당 문구는 제거했습니다.
recoms = [0, 1, 1, 0, 1]
# m = 3
k = 3
num_actual_engagement = 3
precs = []
recalls = []
recoms_to_be_evaluated = recoms[:k]
for indx, rec in enumerate(recoms_to_be_evaluated):
precs.append(sum(recoms[:indx+1])/(indx+1))
recalls.append(sum(recoms[:indx+1])/num_actual_engagement)
print(precs)
print(recalls)
print(
'average precision at k',
(1/num_actual_engagement * np.array(precs)).sum(),
)
# output:
[0.0, 0.5, 0.6666666666666666]
[0.0, 0.3333333333333333, 0.6666666666666666]
average precision at k 0.38888888888888884
도움이 되었을까요?
부족한 블로그 읽어주셔서 감사합니다! :+1:
Recommendations Precision @k (k=3) AP@k (k=3) [1, 0, 0] [1/1, 1/2, 1/3] (1/3)(1) = 0.33 [0, 1, 0] [0, 1/2, 1/3] (1/3)[(1/2) + (1/3)]= 0.28 [0, 0, 1] [0, 0, 1/3] (1/3)(1/3) = 0.11
안녕하세요, 위의 부분에서 두 번째 [0, 1, 0] 에 대한 AP@k 계산 부분이 참고자료에 달린 원문과 다른 것 같습니다. 추천한 세 개의 아이템 중 하나에 대해서만 interaction 이 있었으니 AP@k 의 계산식이 (1/3)*(1/2) = 0.15 가 되는 게 아닐까 합니다. 원문에도 그렇게 되어있는 것 같습니다.
AP에 대한 예시가 잘못된거 같습니다. 모두 1/3로 나눈 것이 아니고 관련성있는 아이템 갯수로만 나누는 겁니다. 혹시 이 블로그를 보시는 분이 계시면, 그 글을 유의해서 읽으시길 바랍니다.
잘읽었습니다
About 이번 블로그에서는 주로 정보를 순서를 지정하여(Ranked) 반환하는 경우에 사용하는 평가방법인 을 소개하고자 한다. 은 예를들어 구글과 같은 검색엔진에서 검색결과가 검색의도와 관련도가 높은 순으로 잘 나열되어있는지를 평가하는 방법이다.
https://danthetech.netlify.app/DataScience/evaluation-metrics-for-recommendation-system