머신러닝, 딥러닝 등에서 모델의 성능을 점검하는 것은 아주 중요한 일이다. 당연하다. 애초에 머신러닝, 딥러닝 등을 사용하는 이유가 "정확"하게 예측하고 싶어서이기 때문이다. 그래서 얼마나 정확하게 예측되었는가? 를 살펴보는 것은 필수불가결한 요소라고 볼 수 있다.
그래서 이번 포스팅에선 분류 모델에서 어떠한 평가지표들을 사용하는지, 기초적인 개념들과 함께 정리해보고자 한다.
True, False, Positive, Negative 정리
이 포스팅에서 설명할 내용은 위 그림 한 장으로 설명 가능하다. Precision, Recall, Accuracy 등을 이해하려면 우선 True 와 False, 그리고 Negative와 Positive의 개념을 이해해야 한다.
학교에서, 그리고 교재에서 명확히 알려주지를 않아서 나는 내 나름의 방식대로 암기 중인데, 간략하게 정리하면 다음과 같다.
- True : 옳게 예측함 (예측이 성공)
- False : 틀리게 예측함 (예측이 실패)
- Positive : 옳다고 예측함
- Negative : 틀렸다고 예측함
True 와 False, Positive 와 Negative를 조합하여 나오는 경우를 따져보면, TP와 FP, FN, TN의 의미를 이해할 수 있게 된다.
- TP : 옳다고 예측했고 예측 성공
- TN : 틀렸다고 예측했고 예측 성공
- FP : 옳다고 예측했고 예측 실패 (실제론 틀림)
- FN : 틀렸다고 예측했고 예측 실패 (실제론 맞음)
이런 식으로 True, False, Positive, Negative 의 개념을 정리할 수 있게 된다. Positive와 Negative의 개념으로 나누는 기준은 귀무가설을 기준으로 정해진다. 보통 귀무가설을 참과 거짓 중 더 중요한 쪽으로 세우기 마련이다. 예를 들면, 어떤 상품의 불량을 확인하고 있는 경우, 귀무가설을 "이 상품은 정상이다" 라고 세우는 것이 이상적이다. 왜냐하면 공장이 정상적이라는 가정 하에 불량품의 비율은 정상품의 비율보다 압도적으로 적을 것이기 때문이다. 따라서 이런 경우엔 Positive 쪽이 정상, Negative 쪽이 불량으로 설정할 수 있을 것이다. 물론 여기엔 절대적인 기준은 없으므로, 상황에 맞게 적절히 선택하는 것이 좋을 것이다. 한 줄 정리 : 비율이 많은 쪽이 Positive로 설정하는 것이 일반적.
Recall, Precision, Accuracy 정리
Recall은 우리말로 재현율, Precision은 정밀도, Accuracy는 정확도로 번역하는데, 사실 원어 그대로 사용하는 경우가 태반이기에 특별히 번역하지 않고 사용하도록 하겠다.
그림을 다시 보면, Recall, Precision, Accuracy 를 어떻게 구하는지 쉽게 알 수 있다.
Recall은 실제로 Positive인 경우 중 True, 예측을 성공한 비율이다.
Precision은 Positive로 예측한 경우 중 True의 비율이다.
Recall 과 Precision 모두 단일 지표로도 예측이 얼마나 정확한지 보여줄 수 있다.
Accuracy는 모든 경우 중, 예측이 성공한 경우의 비율이다.
파이썬으로 작성한 Confusino Matrix와 classification report이다. Confusion Matrix로 부터 TP, FP, TN, FN의 개수를 다 구할 수 있고, 그로부터 precisoin과 recall, accuracy 또한 구할 수 있는데, 직접 구해보면 classification report의 값과 동일함을 알 수 있을 것이다.
1종 오류, 2종 오류
1종 오류와 2종 오류도 굉장히 빈번하게 사용되는 개념이다. 하지만 어려운 개념은 아니다. 대다수의 통계학 책에서 1종 오류와 2종 오류를 다음과 같이 정의하고 있다.
1종 오류는 귀무가설이 참인데 잘못 기각할 때 발생하는 오류를 말한다.
2종 오류는 귀무가설이 거짓인데 기각하지 않았을 때 발생하는 오류를 말한다.
위에서 귀무가설을 기준으로 Positive와 Negative로 나눈다고 설명했다. 따라서 1종 오류는 FP, 2종 오류는 FN 을 말하는 것이다. 기본적으로 "오류" 이기 때문에 False, 즉 예측에 실패한 경우를 가리키는 용어이다.
1종 오류와 2종 오류는 분류 문제에서 깊게 다루지는 않고, 귀무 가설의 검정 부분과 p-value를 배울 때 주로 배우는 개념인 것 같다. 하지만 용어가 겹쳐서 같이 다뤄보았다.
이렇게 이번 포스팅에선 분류모델의 평가지표에 대해서 간단히 살펴보았는데, 사실 정말 중요한 지표는 AUC curve, F1 score 같은 개념들이다. 이는 포스팅이 너무 길어진 관계로 다음 포스팅에서 다루도록 하겠다.
'머신러닝' 카테고리의 다른 글
분류 평가 지표 정리 - F1 score, ROC Curve 등 (2) | 2023.10.18 |
---|---|
클러스터링 정리 (K-Means, 계층적 군집화, DBSCAN) (0) | 2023.10.17 |
머신러닝 - Naive Bayes Classifier(분류) 정리 (0) | 2023.06.17 |
머신러닝 - Regularization 과 LASSO, Ridge 정리 (0) | 2023.06.09 |
머신러닝 - Bootstrap 정리 with 중심극한정리, R (0) | 2023.05.31 |