머신러닝 내공쌓기
[머신러닝 속의 통계학] 오차행렬은 왜 필요할까? 본문
앞서 머신러닝은 크게 input, 기계학습, output의 과정으로 나뉜다고 한 바 있습니다. 오차행렬은 output에 관한 것이라고 볼 수 있습니다.
오차행렬(confusion matrix)은 실제로 참(True)인지 거짓(False)인지, 예측을 긍정(Positive)으로 했는지, 부정(Negative)으로 했는지에 따라 네 개의 경우의 수로 구분한 표를 뜻합니다. 예를 들어, 일기예보에서 오늘 비가 올 것이라고 예측했는데, 비가 오지 않았다면, 예측은 실제로 거짓인데 비가 올 것이라고 긍정했기 때문에 FP에 해당합니다.
머신러닝에서 오차행렬은 중요한데, 왜냐하면 머신러닝 모델의 예측이 얼마나 잘한 예측인지를 판단하는 데 중요한 기준을 제공하기 때문입니다. 오차행렬로부터 우리는 머신러닝 모델의 우수성을 평가하는 여러 지표를 도출할 수 있습니다.
[1] 정확도(Accuracy)
정확도는 (TP+TN)/(TP+TN+FP+FN)으로 나타냅니다. 분수식의 분자에서 유추할 수 있듯이, 정확도는 예측을 긍정으로 했든 부정으로 했든 실제로 참이었는지에 포커싱을 둔 지표임을 알 수 있습니다. 즉, 어떤 방식으로 예측을 하였든 실제로 그러한 예측이 참이었는지를 묻는 지표인 셈입니다. 어찌 보면, 가장 직관적이고 상식적인 지표라고 할 수 있습니다. 왜냐하면 사람들은 모델이 실제로 '진실'을 예측하는지에 가장 관심을 갖기 때문입니다. 결과만 맞다면 과정에는 큰 관심을 갖지 않는 지표로 볼 수 있습니다.
그런데 바로 이러한 부분 때문에 정확도는 약점을 갖습니다. 만일 10명의 환자 중 9명이 특정질병에 걸렸다면, 모델이 환자들이 병에 걸렸으리라고 긍정예측을 하면 무려 90%의 정확도를 갖게 됩니다. 이 자체로는 문제인지 알 수 없지만, 문제는 뛰어난 예측력을 지닌 모델이든 형편없는 예측력을 갖는 모델이든, 이 둘을 가려낼 방법이 없다는 점입니다. 표본의 타깃값이 한쪽으로 편향되어 있기 때문에, 모델이 우수하지 않더라도 찍어서 높은 정확도를 가질 수 있게 됩니다. 학업성취도가 높은 학생과 낮은 학생들이 시험을 보았는데, 문제가 너무 쉽다면 누가 우수한 학생인지 가려내기 어렵듯이, 정확도(Accuracy)라는 지표 역시 변별력이 없는 시험처럼, 우수한 모델과 그렇지 못한 모델을 구별하기 어려운 지표입니다.
[2] 정밀도(Precision)
정밀도는 TP/(TP+FP)로 나타냅니다. 긍정적으로 예측하였을 때 그러한 예측이 실제로 참이었을 확률을 계산한 것입니다. 정확도와 다르게, 예측을 긍정으로 했는지 부정으로 했는지, 즉 실제로 어떤 방향의 예측을 했는지에 관심을 두는 것이 아니라, 만일 긍정적으로 예측하였다면 그러한 예측이 실제와 '일치하는지'에 관심을 갖는 지표입니다. 따라서 모델 예측의 긍정성, 부정성보다 모델의 순수한 예측력 자체에 초점을 둔 지표입니다.
훌륭한 지표이지만, 부정으로 예측하였을 때 실제로 거짓일 확률을 계산하지는 않는다는 점에서 반쪽 짜리 지표라는 한계가 있습니다.
[3] 민감도(Sensitivity), 재현율(Recall)
민감도는 TP/(TP+FN)으로 나타냅니다. 실제로 참일 때 참으로 예측했을 확률을 나타냅니다. 이 지표는 정확도처럼 실제로 옳게 예측했는지에만 관심을 갖는 것이 아니라, 실제로 참이었을 때 옳게 예측했는지를 계산하여 정확도보다는 개선된 지표로 볼 수 있지만, 여전히 모델이 우연히 찍어서 높은 재현율을 나타낼 수 있다는 한계를 갖습니다.
[4] 특이도(Specificity)
특이도는 실제로 거짓일 때 거짓으로 예측했을 확률을 뜻합니다. 민감도와 대칭을 이루는 지표로 볼 수 있습니다. 민감도와 마찬가지로 우연히 찍어서 특이도가 높게 나올 수 있습니다.
[5] ROC 커브
ROC 커브의 x축은 FPR(False Positive Rate) 즉, 1 - 특이도로 되어 있고, y축은 민감도(Sensitivity)로 되어 있습니다.
특이도가 '실제 거짓일 때 거짓이라 판단할 확률'을 뜻하므로, 1 - 특이도인 FPR은 '실제 거짓일 때 참이라 판단할 확률'을 가리킵니다. y축은 민감도이므로 실제 참일 때 참으로 예측할 확률입니다. 곡선 위의 면적이 작을수록 민감도(TPR)는 1에 가까워지고, FPR은 0에 가까워지므로, 실제로 참일 때 참으로 판단하고, 실제로 거짓일 때 거짓이라 판단할 가능성이 커지게 됩니다. 따라서 예측력이 높아진다고 말할 수 있습니다. 참고로 FPR이 0에 가까워진다는 것은, 1 - 특이도 = 0에 가까워진다는 말이므로, 특이도가 1에 가까워짐을 뜻합니다.
정리하면, ROC 커브는 민감도와 특이도의 공통적인 문제점, 한 쪽으로 찍어서 높은 점수를 맞을 수 있다는 문제점을 크게 보완한 지표로 볼 수 있습니다.
[5] F1 score
F1 score는 2 * (정밀도 * 민감도) / (정밀도 + 민감도)를 가리킵니다. 즉, 정밀도와 민감도를 조화평균으로 구한 것입니다. 조화평균의 특징은 분모의 값이 일정할 때 분모의 두 값이 이질적일 수록 전체적으로 더 낮은 값을 갖게 된다는 것입니다. 예를 들어, 정밀도와 민감도가 각각 0.9과 0.1을 갖는 경우와, 각각 0.5와 0.5를 갖는 경우, 분모의 값은 1로 동일하지만, 전자의 조화평균은 0.09, 후자의 조화평균은 0.25가 되어 후자의 값이 더 큰 것을 알 수 있습니다. 민감도와 정밀도 중 한 쪽으로 값의 크기가 편중된다면, 이러한 모델의 예측은 건전하다고 말할 수 없습니다. 실제 참일 때 참으로 예측할 확률과 참으로 예측했을 때 실제 참일 확률은 모델의 예측력을 평가하는 동등하게 중요한 지표이기 때문입니다.