오차행렬은 실제 레이블과 예측 레이블의 일치 여부를 나타내는 행렬이다.
오차 행렬은 아래와 같다.
column 부분은 모델의 예측 레이블, row 부분은 실제 레이블 값이다.
0은 Nagative를, 1은 Positive를 의미한다. 각 요소의 의미는 아래와 같다.
python에서 오차행렬을 확인하기 위한 방법은 아래와 같다.
from sklearn.metrics import confusion_matrix
confusion_matrix(t_test, predicted)
오차행렬(confusion matrix)는 말 그대로 오차행렬을 그릴 때마다 헷갈린다. 아래는 필자의 개인적인 팁이다. 여기서 전제는 우리가 찾고 싶어 하는 결과를 Positive(1)로 두는 것이다. 아래의 예시를 참고하면 좋다.
< 오차행렬 쉽게 그리기 >
- 제 1종 오류라고 불리는 FP를 먼저 아무 곳이던 쓴다.
- 대각선 아래에 FN을 쓴다.
- FP와 FN에 맞춰 축을 지정한다.
- 나머지 TN과 TP를 자리에 맞춰 쓴다.
💡 <제 1종 오류 - 궁금증>
제 1종 오류라고 불리는 FP는 실제 값은 Positive 인데, 예측을 Nagative로 한 것을 말한다. 암 진단 모델을 예로 들면, 실제로는 정상환자를(Nagative) 암환자로(Positive) 오진하는 경우가 FP, 즉 제 1종 오류 상황이다. 그런데 이 경우 FN이 더 문제가 있지 않을까? 왜냐하면 정상환자를 암환자로 오진하는 경우(FP) 다시 검사하면 되지만, 암환자를 정상환자로 오진하는 경우(FN)는 자칫하면 암환자가 치료를 받지 못하게 할 수도 있기 때문에,,, 이 내용은 수정해야 할 것 같다!
위에서 그린 오차행렬은 다음에 나올 정밀도(Precision)와 재현율(Recall), F1 socre에서 다시 사용될 것이므로 잘 익혀두자
사진 및 자료 출처 :