들어가며
우리가 분류 모델을 평가할 때 주로 교차 검증과 오차 행렬을 함께 사용한다
교차 검증은 모델의 일반화 성능을 안정적으로 추정해주긴 하지만
교차 검증에서 얻는 정확도 지표 만으로는 모델이 어디서 틀리고 어디서 맞았는지에 대한 정보는 알 수 없다
특히 불균형한 데이터셋(어떤 클래스가 다른 클래스에 비해 많은 경우)을 다룰 때에는
오차 행렬을 통한 성능 분석이 더욱 중요해진다
오차 행렬을 통해 얻은 정보들로 임계값을 조정하는 등 의사결정 기준을 변경하여
모델의 예측 결과의 활용성을 개선하는 것이 목적이다
오차 행렬(Confusion Matrix)
오차 행렬의 기본 아이디어는 A클래스를 A클래스로 분류한 횟수, B클래스로 분류한 횟수를 세는 것이다
오차 행렬이 어떻게 표현되는지를 먼저 보여주자면 아래와 같다
array([[53892, 687],
[ 1891, 3530]])
오차 행렬에서 행은 실제 클래스를 의미하고 열은 예측한 클래스를 의미한다
사이킷런에서의 오차행렬에서 첫번째 행은 음성 클래스를 나타내는 것으로
위 행렬에서는 53892개가 음성으로 정확히 분류된 진짜 음성(True Negative)이고
687개가 실제 데이터는 음성이지만 양성으로 잘못 분류한 거짓 양성(False Positive)이다
반대로 두번째 행은 양성 클래스에 대한 것으로
1891개가 실제 데이터는 양성이지만 음성으로 잘못 분류한 거짓 음성(False Negative)이고
3530개가 양성으로 정확히 분류된 진짜 양성(True Positive)이다
정밀도(precision)
오차 행렬을 통해 알 수 있는 지표로 정밀도와 재현율이 있는데 우선 정밀도를 알아볼 것이다
정밀도는 양성 예측의 정확도를 나타낸다
쉽게 말해서 모델이 양성이라고 예측한 것 중 실제 양성인 것의 비율을 의미한다
재현율의 개념을 알게되면 정밀도에 대한 이해가 더 잘될 것이다

TP는 진짜 양성을 말하고 FP는 거짓 양성을 말한다
재현율(Recall)
정밀도는 재현율이라는 지표와 같이 유용하게 사용된다
재현율은 분류기가 정확하게 감지한 양성 샘플의 비율을 의미한다
민감도(Sensitivity) 또는 진짜 양성 비율(True Positive Rate)라고도 부른다

다시 말해서 재현율은 모든 양성 샘플 중 양성이라고 예측한 것의 비율이다
FN은 거짓 음성을 의미한다
F1 Score
정밀도와 재현율은 F1 score라고 하는 하나의 숫자로 만들어 활용된다
F1 score는 정밀도와 재현율의 조화 평균이다
일반적인 평균은 모든 값을 동일하게 취급하지만 조화 평균은 낮은 값에 훨씬 더 높은 비중을 두는 평균이다

F1 score값이 높아지려면 재현율과 정밀도가 모두 높아야 한다
하지만 재현율과 정밀도를 모두 높은 값으로 얻는 것은 어렵다
정밀도를 올리게되면 재현율이 줄고 정밀도를 낮추게되면 재현율이 올라간다
이런 현상을 정밀도/재현율 트레이드오프라고 부른다
마치며
이번 글에서는 오차 행렬과 여기서 파생되는 개념들을 위주로 알아보았다
처음에 오차 행렬을 사용하는 근본적인 이유에 대한 의문이 계속 들어 이해에 어려움을 겪었다
오차 행렬을 사용해서 분석을 한다고 해도 데이터 자체가 변하는게 아닌데
예측에 어떻게 영향을 주는거지? 라는 생각이 들었었다
의문을 풀어나가면서 모델이 훈련/예측하는 과정과 교차 검증, 오차 행렬에 대해 더 깊이 이해할 수 있었다
다음 글에서는 정밀도/재현율 트레이드오프를 어떻게 예측 성능 향상에 활용할 수 있을 지에 대하여 알아볼 것이다
'AI > Machine Learning' 카테고리의 다른 글
| [AI] ROC곡선 (0) | 2026.03.01 |
|---|---|
| [AI] 정밀도/재현율 트레이드오프 (1) | 2026.02.28 |
| [AI] 그리드 서치(Grid Search), 랜덤 서치(Random Search) (1) | 2026.02.08 |
| [AI] 변환 파이프라인 (1) | 2026.02.08 |
| [AI] 방사 기저 함수(RBF)를 통한 유사도 측정으로 멀티모달 분포(multimodal distribution) 변환 (1) | 2026.02.08 |
