Confusion Matrix(컨퓨전 매트릭스)는 한국어로 혼동행렬이라고 부릅니다.
혼동행렬이라는 단어가 어색해서 흔히 영어 발음 그대로 컨퓨전 매트릭스라고 부릅니다.
Confusion matrix는 기계학습 모델 중에서 분류 모델의 성능을 측정하고 학인하기 위한 간단한 계산식과 표입니다. 기계학습의 분류모델의 성능 측정을 위한 지표 계산법 이라고 기억하시면 됩니다.
인터뷰나 멘토링을 할 때 기계학습 초보자인지 아닌지를 확인하는 가장 쉬운 방법은 Confusion Matrix를 설명하라고 하거나 어떤 모델에 대한 설명을 한 후 Confusion Matrix에서 어떤 것을 보는게 좋을지에 대해서 물어보고 대답을 어찌하는지 보면 확인할 수 있습니다.
Confusion Matrix에 대해서 잘 모른다면 기계학습에 대한 지식이 아예 없다고도 볼 수 있습니다.
흔히 Confusoin matrix는 위의 그림에서 좌상단에 있는 조그만 박스를 말하는데 기계학습을 하다가 보통 Precision, Recall과 같은 지표 이름이 나오면 Confusion matrix라고 생각하면 됩니다.
위의 표가 행렬처럼 생겨서 혼동행렬이라고 하는것인데
이름이 왜 혼동이라는 단어가 들어가서 혼동행렬인지 단어의 뜻을 이해하면 저게 왜 복잡한지 알 수 있습니다.
기계학습 모델의 문제는 “그 모델이 왜필요하며 어떤 문제를 해결하기 위해서 필요한가 ”에 따라서 어떤 지표를 봐야 하는지를 결정해야 하고 어떤 지표와 어떤 지표가 상관관계가 있는지 상호충돌(trade off)인지도 잘 이해하지 않으면 지표를 보는 것(해석하는 요령)이 어렵습니다.
그래서 혼동행렬이라고 부릅니다.
Precision을 중요하게 봐야 하는 모델, Recall을 중요하게 봐야 하는 모델, 둘 다 봐야하는 모델 등 각기 다른데 모델의 각 지표에 대한 중요도와 우선순위는 모델이 처한 상황과 산업, 모델이 해결해야 하는 문제에 따라 다릅니다.
어쨌든 혼동행렬에서 중요한 기본 4개의 지표는
- TP: True Positive. 모델이 긍정이라고 한 것중에 정답도 긍정인 것
- FP: False Positive. 모델은 긍정이라고 했지만 정답은 부정인 것
- FN: False Positive. 모델이 부정이라고 한 것중에 정답이 긍정인것
- TN: True Negative. 모델이 부정이라고 한 것중에 실제로 정답도 부정인 것
TP, TP, FN, TN은 모두 카운트한 값으로 빌드한 모델을 테스트 데이터에 대해서 실험해서 나온 결과로 구하게 됩니다.
위의 기본 지표도 상당히 헷갈리는데 간단하게 이해하려면 True와 False는 기계(모델)이 한 행위가 맞다 틀리다를 표현하는 것이고 Positive와 Netagive는 모델이 데이터 레코드를 어떻게 판별했는가를 나타냅니다.
True Positive라면 모델은 데이터레코드를 긍정이라고 판단했고 True이기 때문에 모델이 긍정이라고 한 것이 맞다! 라는 뜻입니다.
False Negative라면 모델은 데이터 레코드를 부정으로 판단했고 False이기 때문에 모델이 그렇게 판단한 것이 틀렸다는 의미입니다. 풀어서 설명하면 False Negative는 모델이 부정이라고 했지만 사실 정답은 긍정인것이라 모델이 네가티브로 판별한 것은 틀렸다는 의미입니다.
그 뒤에 2차 지표를 구하게 되는데
이것들이 precision, Recall, Accuracy, F1-score, F-beta score 같은 것들입니다.
이 지표들은 Confusion Matrix안에 있는 4개의 기초 카운트값으로 계산해서 구할 수 있고 보통 비율값으로 계산이 됩니다.