Confusion Matrix를 통한 분류 모델의 평가
분류 모델을 학습하는 것의 목적은, 주어진 데이터를 의도에 맞게 잘 분류해내기 위한 것이다.
그렇다면 이러한 모델을 평가하는 기준이 필요할 것이다.
모델을 평가할때는 모델이 얼마나 정밀한지, 얼마나 실용적인 분류를 해내었는지, 얼마나 정확한 분류를 했는지를 평가해야 한다.
이러한 내용들을 모두 포함하고 있는 것이 Confusion Matrix이다.
1. Confusion Matrix
레이블 0,1을 가진 데이터를 분류한다고 할 때 관심 범주를 1이라고 한다.
True Positives : 1인 레이블을 1이라 하는 경우를 True Positives라고 한다. -> 관심 범주를 정확하게 분류한 값.
False Negatives : 1인 레이블을 0이라 하는 경우를 False Negatives라고 한다. -> 관심 범주가 아닌것으로 잘못 분류함.
False Positives : 0인 레이블을 1이라 하는 경우를 False Positives라고 한다. -> 관심 범주라고 잘못 분류함.
True Negatives : 0인 레이블을 0이라 하는 경우를 True Negatives라고 한다. -> 관심 범주가 아닌것을 정확하게 분류.
이 4가지 정보를 바탕으로 3가지의 척도를 평가할 수 있다.
첫번째 척도로, 정확도(Accuracy)가 있다. 정확도는 1을 1로, 0을 0으로 정확하게 분류해낸 것을 의미한다. 모델이 얼마나 정확한지를 평가하는 척도라고 할 수 있다.
두번째 척도로, 정밀도(Precision)가 있다. 모델을 통해 1이라고 분류해낸 그룹 A가 있을 때, 모델이 얼마나 믿을만한 정도로 A를 만들어 냈는지를 평가하는 것이다. 어부가 그물을 던져 물고기를 잡을 때, 그물 안에 1이라는 물고기가 얼마나 들어있는가에 대한 척도이다.
세번째 척도로, 재현도(Recall)가 있다. 정밀도와 비교되는 척도로써, 전체 예측 중에 TP가 얼마나 많은 가에 관한 것이다. 관심 영역만을 얼마나 추출해냈는지를 말한다. 즉, 모형의 실용성과 관련된 척도라고 할 수 있다.
일반적으로 Precision, Recall은 상충되는 수치라기 보다는, 독립적으로 평가되는 수치이다. 두 가지를 함께 평가하는 수치로 F-score라는 것이 있는데, Precision과 Recall의 곱을 둘의 합으로 나눈 뒤, 2를 곱해준 수치이다.
이렇게 총 4가지의 평가 척도를 각각 상황에 맞게 사용해야 한다.
여기에 추가적으로 민감도(Sensitivity), 특이도(Specificity)라는 개념이 등장한다. 민감도는 Recall과 동일한 것이고, 특이도는 민감도와 정 반대되는 개념이다. Recall이 (판정한 것 중 실제 양성 / 전체 양성)인 양성에 대한 민감도를 의미한다면 특이도는 (판정한 것 중 실제 음성 / 전체 음성)을 의미한다.
수식으로 나타낸다면 다음과 같다.
민감도(True Positive Rate) = TP / P
특이도(False Positive Rate) = TN / N = (1 - FP / N)
2. ROC Curve와 AUC
Confusion Matrix만으로는 모델의 평가 척도로써 부족할 수 있다.
그래서 모델의 효율성을 평가하는 척도로 ROC Curve라는 것이 존재한다.
모델의 효율성을 민감도, 특이도를 이용하여 그래프로써 나타낸 것이다.
이 ROC 커브와 x축이 이루고 있는 면적의 넓이를 AUC(Area Under Curve)라고 하는데, AUC의 값이 1에 가까울수록 효율적인 모델이라고 할 수 있다.
x축은 FPR(False Positive Rate)로, 틀린것을 맞았다고 잘못 예측한 수치를 나타낸다. (FPR = FP / (FP + TN))
y축은 TPR(True Positive Rate)로, 맞은것을 맞았다고 잘 예측한 수치를 나타낸다. (TPR = TP / (TP + FN)) [== Recall]