Confusion Matrix (혼동행렬)
머신러닝에서 분류 모델의 성능을 평가할 때 사용하는 지표입니다.
혼동행렬을 사용해 모델이 단순히 ‘잘 예측했는지, 아닌지’로만 판단하지 않고 구체적으로 분석해 성능을 파악할 수 있습니다.
행렬 값을 통해 모델이 어떤 부분에서 예측을 어려워하는지, 오류를 보이는지 확인할 수 있습니다.
실제 \ 예측 | P (Positive) | N(Negative) | |
P (Positive) | T (True) / F (False) | TP | FN |
N(Negative) | F (False) / T (True) | FP | TN |
- 예측 P (맞게 예측), N (틀리게 예측)
- 실제 P (참인 값), N (거짓인 값)
- T(정확히 예측), F (잘못된 예측)
"어떻게 예측했는가 + 어떤 값으로 예측 했는가"
- TP: (참인 값을) 참인 값으로 맞게 예측 = 올바른 긍정 예측
- 시민을 시민으로 예측
- FP: (거짓인 값을) 참인 값으로 잘못 예측 = 잘못된 긍정 예측
- 마피아를 시민으로 예측
- FN: (참인 값을) 거짓인 값으로 잘못 예측 = 잘못된 부정 예측
- 시민을 마피아로 예측
- TN: (거짓인 값을) 거짓인 값으로 맞게 예측 = 올바른 부정 예측
- 마피아를 마피아로 예측
정분류율과 오분류율
정분류율 (Accuracy): 전체 데이터 중 모델이 올바르게 분류(예측)한 비율
- 정확도라고도 함
- 전체 중에 잘 예측한 것 - 참을 참으로, 거짓을 거짓으로
- 100개를 분류했는데 그 중 90개를 맞췄을 경우, 정확도는 90%
- 정확도가 항상 적절한 성능 평가 지표가 아닐 수 있음
- 데이터의 클래스가 심하게 불균형할 경우, 편향된 학습으로 정확도의 신뢰도가 떨어질 수 있음
- 전체 메일 100개 중 일반 메일은 90개, 스팸 메일은 10개라고 가정할 때
- 모델은 일반 메일에 대한 학습만 잘 이루어져 있기 때문에, 스팸 메일을 모두 놓친다 해도 일반 메일은 대부분 정확하게 분류할 수 있음.
- 이 때, 정확도는 높게 나올 수 있지만 평가 결과를 신뢰할 수 없음.
- 데이터 분석을 통한 특성에 따라 정밀도, 재현율, F1 스코어 등을 같이 확인해야 함
오분류율 (Error Rate): 전체 데이터 중 모델이 잘못 분류(예측)한 비율
- 전체 중에 잘못 예측한 것 - 참을 거짓으로, 거짓을 참으로
- 1 - 정분류율
- 100개를 분류했는데 그 중 10개를 틀렸을 경우, 오분류율은 10%
민감도, 특이도, 정밀도
민감도 (Sensitivity): 참인 값을 참으로 올바르게 예측한 비율
- 모델의 완전성을 평가하는 지표인 재현율(Recall)과 동일
- 실제 암 환자 중 암으로 정확하게 진단한 비율
- 민감도가 높다 = 안 놓치고 잘 예측했다! (모델이 참을 잘 발견하고 있음)
- 최대한 놓치지 않고 실제 값을 잘 찾아야 할 경우, 민감도 측정
- 민감도만 높으면 정밀도가 극단적으로 떨어질 수 있음
- 모든 경우를 Positive로 예측하면(FN = 0) 재현율이 높아지므로 (1)
- 민감도가 높다해도 거짓인 경우에 대해 어떻게 처리하고 있는지 확인하기 힘듦,,
특이도 (Specificity): 거짓인 값을 거짓으로 예측한 비율
정밀도 (Precision): 참으로 예측한 데이터 중 실제 참인 값의 비율
- 모델이 암이라고 예측한 환자 중 실제 암인 환자의 비율
- 정밀도가 높다 = 아닌 사람 잡지말자! 억울한 사람 안돼! (모델이 참이라고 자신있게 예측)
- 정말 올바르게 예측해야 할 경우, 정밀도 측정
- 정밀도만 높으면 재현율이 극단적으로 떨어질 수 있음
- 확실한 데이터만 Positive로 예측하면(FP ↓) 정밀도가 높아지므로
- 참 값인 데이터 중 놓치는 부분이 많아도 정밀도는 높을 수 있음,,
- 극소수의 암 환자만 암으로 판정하면 정밀도는 높지만 나머지는 모두 음성 판정이므로 재현율이 매우 낮아짐
민감도와 정밀도 비교
민감도 | 정밀도 |
실제 P 데이터 중 모델이 P라고 예측한 비율 | 모델이 P라고 예측한 것 중 실제 P 데이터의 비율 |
거짓 음성(False Negative)을줄이는 것이 중요할 때 | 거짓 양성(False Positive)을 줄이는 것이 중요할 때 |
FP가 높으면 모델이 실제 Negative 데이터를 Positive로 잘못 예측하는 경우가 많음 | FN이 높으면 모델이 실제 Positive 데이터를 놓치는 경우가 많음 |
질병이 있는 사람에게 건강하다고 잘못 판단하는 것을 최대한 줄여야 하는 경우 | 스팸이라고 예측한 메일 중 진짜 스팸 메일일 확률을 높여야 할 경우 |
불균형 데이터에 취약 |
📍민감도와 정밀도 둘 다 중요한데, 하나의 성능을 올리면 다른 성능이 떨어지는 관계를 가지므로 주의해야 함
F1 Score
정밀도와 재현율의 조화 평균
- 정밀도와 재현율 사이의 균형을 고려하여, 동일한 가중치를 부여해 평균 계산
- 민감도와 정밀도 둘 다 고려해 균형을 맞추는 것이 중요하므로, F1 score로 평가하는 경우가 많음
- 데이터의 클래스가 불균형할 경우 유용
표로 익히기
민감도
정밀도
특이도