본문 바로가기

머신러닝/[기타]

분류 성능평가

우리가 어떤 데이터셋에 대한 모델을 구축한 뒤 가장 중요한 것은
모델의 적합성을 구체적인 수치로써 평가하는 것입니다.
그러나 대부분의 초심자들은 단순한 정확도(Accuracy)에만 집중할 뿐,
자신의 시나리오에 가장 적절한 메저(Measure)를 선택해야함을 잊곤합니다.
때문에 오늘은 모델의 성능을 평가에 대한 내용을 다뤄보겠습니다.

Confusion Matrix

분류 모델의 성능을 평가하는 메저는 여러가지가 있습니다만,
그것들을 계산하는 기반이 되는 것은 아래의 Confusion Matrix입니다.

  Predicted class
P N
Actual Class P

True Positive (TP)

False Negative (FN)
N

False Positive (FP)

True Negative (TN)

TP: 참을 참이라 예측한 경우
TN: 거짓을 거짓이라 예측한 경우
FP: 거짓을 참이라 예측한 경우
FN: 참을 거짓이라 예측한 경우

예측된 참 거짓과, 실제 참 거짓을 비교하여 계산되는 위에 표에 따라 아래의 여러가지 메저를 계산할 수 있습니다.

1.정확도(Accuracy) -> (TP + TN) / (TP + TN + FP + FN)
: 가장 직관적인 적절성 평가 단위입니다. 참을 참으로, 거짓을 거짓으로 정확히 분류해낸 것을 의미합니다. 높을수록 좋은 모델이며, 일반적으로 모델 훈련 과정에서 최적화 목적함수로써 사용됩니다.

2.정밀도(Precision) -> TP / (TP + FP)
: 참이라 예측한 경우 중 실제로 참일 경우의 비율을 의미합니다. 높을수록 좋은 모델이며, 예를 들면 사기 거래라고 판단한 거래 중 실제 사기 거래의 비율이 됩니다.

3.재현율(Recall) = 민감도(Sensitivity) = TPR(True Positive Rate) -> TP / (TP + FN)
: 실제로 참인 경우 중 예측값도 참인 경우의 비율을 의미합니다. 높을수록 좋은 모델이며, 예를 들면 실제 사기 거래 중 실제 사기 라고 판단한 거래의 비율이 됩니다. 모델의 실용성과 관련된 척도라 말합니다.

4.특이도(Specificity) -> TN / (FP + TN)
: 실제로 거짓인 경우 중 예측값도 거짓인 경우의 비율을 의미합니다. 재현율과 반대의 개념이라 생각할 수 있습니다.

5.위양성율(Fall out) = FPR(False Positive Rate) -> FP / (FP +TN)
: 실제로 거짓인 경우 중 예측값은 참인 경우의 비율을 의미합니다 낮을수록 좋은 모델이며, 예를 들면 실제 정상 거래 중 실제 사기 거래라고 판단한 거래의 비율이 됩니다. 수식상 1-위양성율은 특이도와 같습니다.

Precision VS Recall

곰곰히 생각해보면, 정밀도와 재현율은 내가 어떤 부분에 더 집중하고 싶은가에 따라 채택되는 부분입니다. 이 두개의 값은 절대 동시에 높아질 수 없으며, 서로 반비례관계를 갖게 됩니다. 경찰이 범인을 예측한다는 상황을 생각해봅시다. 이 때, 정밀도가 30%(경찰이 범인을 예측했을 때, 진짜 도둑의 비율)인 것은 괜찮습니다. 범인을 잘 잡지 못해 아쉽겠지만 그 뿐입니다. 그러나 Recall이 30%(진짜 도둑 중 경찰이 범인이라 예측한 비율)라면, 이는 검거율에 높은 영향을 미칠 것입니다.

5.F1 Score -> 2 * (Precision * Recall) / (Precision + Recall)
: 앞서 말했듯 정확도와 재현율은 동시에 높아질 수 없으며, 때문에 대개 적절한 선을 찾아내는 것이 중요합니다. 때문에 두 지표의 조화평균을 F1 Score로써 사용합니다. 이 경우 상황에 따라 조금더 다른 계산방식을 적용하기도 합니다.

6.ROC Curve 와 AUC
: 재현율을 높이기 위해서는 참으로 판단하는 기준(Threshold)를 낮추어, 약간의 근거만으로 참으로 판단하도록 조정하는 기법을 사용할 수 있습니다. 그러나 이 경우, 당연히 반대의 위양성율이 증가하게 됩니다. 때문에 ROC(Receiver Operator Characteristic) Curve는, 기준값의 변화에 따른 재현율과 위양성율의 변화를 나타낸 그래프가 됩니다.

위의 ROC Curve에서 곡선아래의 면적을 AUC(Area Under the Curve)라 하며, 높을수록 좋은 모델입니다.