오늘은 이전에 리뷰했던 Camera View Adjustment Prediction for Improving Image Composition 논문에서 사용됐던 평가지표에 대해 알아볼 것이다. AUC, TPR, F1-score, IoU가 있었는데, IoU는 Bounding Box의 겹치는 정도를 측정하기 위한 지표이기 때문에 논외로 하고, 예측에 대하여 정확도를 측정하는 지표인 AUC와 F1-score에 대해 알아보려고 한다.
ROC 곡선은 Receiver Operating Characteristic의 줄임말로, 여러 threshold에서의 민감도와 특이도의 관계를 나타내는 곡선을 말한다.
two class 분류 문제(0, 1)이 있을 때, 예측이 0에서 1 사이의 값으로 나오기 때문에 특정한 threshold를 지정하여 이 이상이면 1, 미만이면 0으로 지정해야한다. 이 threshold를 이용하여 confusion matrix를 만들 수 있다.
예측 True 예측 False
실제 True True Positive(TP) False Negative(FN)
실제 False False Positive(FP) True Negative(TN)
이때 민감도와 특이도는 다음과 같이 계산된다.
따라서 threshold에 따라 민감도와 특이도가 달라지기 때문에 민감도와 특이도를 threshold에 대한 함수로 나타낼 수 있다.
ROC 곡선은 1-특이도와 민감도를 각 x, y축으로 하여 그린 그래프이다.
ROC 곡선이 좌상향을 그릴수록 모델의 성능이 좋은 것이다.
AUC는 Area Under the Curve의 줄임말로, ROC 곡선의 아랫부분 면적 넓이를 의미한다. ROC 곡선이 좌상향을 그릴수록 성능이 좋기 때문에 AUC가 클수록 성능이 좋은 모델이다.
F1-score는 불균형한 데이터에 대해서 모델의 성능을 측정하기 위한 지표이다.
F1-score는 Precision(정밀도)와 Recall(재현율)의 조화평균이다.
Precision과 Recall의 계산식은 다음과 같다.
Precision은 모델이 양성으로 예측한 것 중에서 실제로 양성인 것의 비율이고, Recall은 실제로 양성인 샘플 중에서 모델이 양성으로 예측한 것의 비율이다.
F1-score의 계산식은 다음과 같다.
F1-score = 2 (Precision Recall) / (Precision + Recall)
오늘은 간단하게 평가 지표에 대해 알아보았다. 처음 봤을 때는 좀 낯선 개념이었는데 찾아보다 보니 익숙해져 평가 방식을 이해할 수 있었다. 코드 레벨에서는 scikit-learn이 위의 지표 계산을 모두 지원해주기 때문에 공식 문서를 보면 쉽게 코드를 작성할 수 있다.
정보에 감사드립니다.