모델의 성능을 평가하는 데에서 있어 사용할 수 있는 지표는 정말 많다. 이번엔 가장 흔한 지표에 속하는 Accuracy, Precision에 대해 알아보도록 한다.
Accuracy(정확도)
전체 항목 수 대비 올바르게 분류된 항목 수의 비율을 확인한다. 바이너리 분류와 멀티클래스 분류 모두에 사용되며, 정확도는 예측된 클래스 값이 실제 값에 얼마나 가까운지를 측정하는 것이다. 그렇기에 정확도 지표의 값은 언제나 0에서 1 사이다. 값 1은 완벽한 정확도를 나타내고, 0은 완벽한 부정확도를 나타낸다.
0에서 1의 간단한 결과를 나타낸다는 건 그만큼 빠른 점검에 속한다는 뜻이다. 클래스 분포가 균형잡힌 경우에 특히 사용하기 좋은데, 예를 들면, 수달과 해달의 사진을 분류하는 상황에서 각 사진의 수가 약 50장으로 비슷한 것이다. 데이터가 균형 잡혀 있으면, 이때 정확도가 높다는 것은 모델이 모든 클래스를 전반적으로 잘 예측하고 있음을 의미한다.
만일 데이터가 균형 잡혀 있지 않다면, 즉, 수달 사진은 99장이고 해달 사진이 1장이라면 문제가 생긴다. 모든 사진을 수달이라고 판단하더라도 99%의 정확도가 나오기 때문이다. 그러나 이 경우에서 가장 중요한 건 해달 1장을 잡아내는 것이지 않은가. 그렇기에 데이터가 불균형한 상황에서는 Accuracy를 사용하는 것이 바람직하지 않다. 대신 F1 Score, Precision, AUC-ROC을 사용하는 것이 대안이다.
Precision(정밀도)
정밀도는 알고리즘이 식별한 모든 양성 중에서 Ture Positive를 얼마나 잘 예측하는지를 측정한다.
정밀도 = TP/ (TP+FP) 이며, 이 값의 범위는 마찬가지로 0에서 1 사이이고, 정밀도는 바이너리 분류에 사용된다. 정밀도는 False Postive의 비용이 높을 때 중요한 지표다. 예를 들어, 비행기 안전 시스템이 비행하기에 안전하다고 잘못 간주되는 경우, False Positive로 인한 비용은 매우 높다. False Positive은 데이터에서 실제로는 음성인데 양성으로 예측하는 것을 반영한다.
그러니까 쉽게 말해, 모델이 "이건 맞다!"라고 했을 때, 그게 진짜 맞을 확률이 얼마나 되는지를 나타내는 것이다. 정밀도가 높다는 것은 모델이 양성으로 예측한 결과가 대체로 정확하다는 것이다.
그렇다면, Precision은 어느 상황에서 유용할까? 이는 False Positive의 비용이 너무 클 때, 즉, 잘못 예측한 Positive가 심각한 결과를 초래할 때 중요한 지표가 된다. 수달, 해달 사진을 분류하는 것과는 다른 다소 중요한 상황에서 말이다. 이를 테면 다음과 같다.
① 스팸 메일 분류: False Positive가 발생하면, 중요한 정상 메일을 스팸으로 잘못 분류하여 사용자가 중요한 정보를 놓치게 된다.
② 질병 판단: 건강한 사람에게 암이라고 오진하였다면? 불필요한 고통, 추가 검사, 심각한 스트레스가 유발될 것이다.
③ 추천 알고리즘: 사용자에게 관심 없는 상품을 관심 있다고 잘못 추천하는 것이다. 수달에만 좋아요를 누르는 사람에게 공룡을 추천하는 느낌이다.
④ 침입 탐지: 정상적인 네트워크 활동을 침입/공격이라고 잘못 탐지하는 것이다.
이러한 상황에서는 모델이 긍정으로 예측할 때 매우 확신을 가지고 신중하게 판단하도록 만들기 위해, 정밀도 지표를 최적화하는 것이 중요하다.
다음 글에서는 정밀도와 함께 등장하는 개념인 F1 Score와 Recall에 대해 알아보도록 한다.
'보안 > 개념' 카테고리의 다른 글
| [AWS] AUC & MSE & MAE (0) | 2025.11.05 |
|---|---|
| [AWS] Recall & F1 Score (0) | 2025.11.04 |
| SDN(Software Defined Networking) 총정리 (2) | 2025.08.04 |
| ISRM 내용 정리 (1) | 2025.05.20 |
| 위치정보 보호 총정리 (1) | 2024.09.10 |