
데이터를 train set과 test set으로 분리
train set을 사용해서 학습하고, test set으로 평가
예상 평점과 실제 평점 차이를 계산 후 정확도 측정
그렇지만, 정확도라는 것이 train set과 test set에 어떤 사용자가 들어가고 몇 명의 사용자와 몇 개의 아이템을 넣느냐에 따라서 많이 달라질 수 있기 때문에
좀 더 명확하고 Robust(어떤 데이터를 넣어도 비슷한 정확도를 보이는, 민감하지 않은)한 평가를 위해서
cross validation처럼 train set과 test set을 여러가지로 바꿔가면서 정확도를 측정하면서 모델에 대한 전반적인 성능을 평가해볼 필요가 있다.
- 각 아이템의 예상 평점과 실제 평점 차이
- RMSE, 연속적인 값에 대해서 활용할 수 있다.(회귀)
- 추천한 아이템과 사용자 실제 선택과 비교
- 장바구니에서 그 아이템을 샀다 안 샀다와 같은 이진 데이터를 비교할 수 있다.(분류)
- 정확도, 정밀도, 재현율, 정밀도와 재현율의 조화 평균(F1 score), 범위

TP (True Positive) = 모델은 True로 예측했고, 실제 데이터도 True인 경우 / 양성으로 올바르게 예측
FP (False Positive) = 모델은 True로 예측했지만, 실제 데이터는 False / 양성으로 잘못 예측
TN (True Negative) = 모델은 False로 예측했고, 실제 데이터도 False인 경우 / 음성으로 올바르게 예측
FN (False Negative) = 모델은 False로 예측했지만, 실제 데이터는 True인 경우 / 음성으로 잘못 예측

정확도 = 정확히 예측한 비율 (True를 True로 잘 예측 + False를 False로 잘 예측)

정밀도 = 모델이 True로 예측한 것 중 실제 데이터도 True인 비율

재현율 = 실제 True인 데이터 중 모델이 True로 예측한 비율
정밀도와 재현율은 trade-off의 관계.
정밀도와 재현율의 조화평균

F1 score는 이 두 평가 지표를 모두 고려하여 모델의 예측 성능을 평가하기 때문에, 정확한 예측과 재현율의 평균을 동시에 고려할 수 있는 장점이 있다.
F1 Score는 이 두 가지의 지표의 조화평균을 구한 것이다. 조화평균을 사용하는 이유는 두 metric 중 더 작은 값에 영향을 많이 받기 위함이다. F1 Score는 0.0~1.0 사이의 값을 가지는데, Precision과 Recall 값이 모두 갖춰져야만 높은 지표를 얻을 수 있다. 불균형 데이터에 취약한 모습을 보였던 Accuray 보다 훨씬 더 모델 성능을 구체적으로 가늠할 수 있다.
[블로그 참고]
정리를 위해 참고했습니다!(이미지, 설명)
https://www.thedatahunt.com/trend-insight/f1-score
https://bhcboy100.medium.com/머신러닝-분류-평가지표-이해하기-정확도-정밀도-재현율-f1-스코어-6bf91535a01a
추천이 가능한 사용자의 비율이나 추천이 가능한 아이템의 비율.
정밀도와 반대의 관계
best-seller 방식의 경우, 모든 집단을 전체로 두어 추천하기 때문에 범위는 커지지만 정밀도는 떨어진다.