머신러닝 모델 평가지표 - 분류

Posted by Daehan Kang on 2023-01-31
데이터분석

데이터 준비와 모델 학습은 누구나 머신러닝 작업 파이프라인에서 핵심적인 단계로 생각하지만, 학습된 모델의 퍼포먼스를 측정하는것 또한 중요한 단계에 해당한다.

새로운 데이터로(학습에 사용하지 않은) 모델을 일반화시킬 수 있을까 하는것은 적응형(adaptive) vs 비적응형(non-adaptive)으로 구분할 수 있다.

우리는 학습시킨 모델을 바로 실서비스에 올려서 처음 만나는 데이터를 접하기 전에, 다른 평가지표로 퍼포먼스 평가를 하여 우리 모델이 처음만나는 데이터에 대해서도 훌륭한 예측력을 가질 수 있도록 개선시켜야한다.

모델을 학습하면서 단순히 모델의 정확도에만 의존하여 검증단계에서 안 좋은 성능을 보여주는 예시 이미지이다.

[그림1] 좋지 않은 성능 결과


1. 평가지표(evaluation metrics)


분류(classification), 회귀(regression), 랭킹, 군집화(clustering), 토픽모델링(topic modeling) 등 각각의 모델마다 적절한 평가지표는 다르지만, Precision-recall과 같이 여러 머신러닝에서 통상적으로 유용하게 쓰이는 지표들이 있다. 분류, 회귀와 랭킹은 보편적으로 많이 쓰이는 지도학습(supervised learning)의 예시로 볼 수도 있다.

1.1 모델 정확도(Model Accuracy)

분류 모델 측면에서 모델 정확도는 전체 표본 중 정확히 분류된 표본의 수라고 볼 수 있다.
모델 정확도를 설명하기에 앞서 우선적으로 알아야 할 것 중에 Confusion Matric에 대해서 알아보고자 한다.

[그림2] Confusion Matric

TP, FN, FP, TN의 네 가지로 분류됨을 알 수 있다. 여기서 각각의 의미를 살펴보자면, True와 False는 예측한 것이 정답과 일치하는지를 의미하며 Positive와 Negative는 예측의 여부를 말한다.
다음 예시로 의미를 설명하고자 한다.

[강아지 사진을 보여주는 경우]
True Positive
강아지가 맞다고 예측하는 경우(True), 모델이 정답(Positive)을 맞춤
False Negative
강아지가 아니라고 예측하는 경우(False), 모델이 정답을 오답(Negative)이라고 생각함

[강아지 사진이 아닌 경우]
False Positive
강아지가 맞다고 예측하는 경우(True), 모델이 오답을 정답(Positive)이라고 생각함
True Negative
강아지가 아니라고 예측하는 경우(False), 모델이 오답(Negative)을 맞춤

여기서 말하는 TP와 TN의 경우가 정확히 분류된 표본이라고 볼 수 있다.
Accurancy = 정확히 분류된 표본(TP+TN) / 전체 표본(TP+FN+FP+TN)

정확도가 높으면 무조건 좋은 것일까?

정확도의 방법에는 문제점이 있는데, 단지 예측의 성공에만 초점을 둔다는 것이다. 전체 표본의 편중(Bias)을 고려해야 할 필요가 있는데, 만약 전체 표본에서 강아지의 비율이 99.99%라면 다 강아지라고 예측해도 모델은 99% 이상의 정확도를 보여줄 것이다. 이 경우에는 강아지가 아닌 다른 것들을 제대로 분류하는지 알 수 없다.
만약에 암 환자를 구분하는 경우라고 생각하면 그 문제는 더 심각하다. 대부분의 경우 정상이므로, 정상이라고 예측하면 높은 정확도를 보여줄 것이다. 이 경우 높은 정확도의 모델이지만 암 환자를 제대로 예측하지 못하는 심각한 문제가 발생할 수 있다.

1.2 정밀도와 재현율 (Precision and Recall)

앞선 정확도의 경우 전체 표본이 불균형한 경우 제대로 파악할 수 없다는 문제점이 있었다. 이러한 문제에서 고려해 볼 수 있는 평가지표가 바로 정밀도와 재현율이다.

- 정밀도(Preicision)

정밀도는 모델이 정답이라고 에측한 것 중에서 실제로 정답인 수를 의미한다.

Precision = 실제로도 정답인 수(TP) / 정답이라고 예측한 수(TP+FP)

precision이 높다는 것은 알고리즘이 관련 있는 결과를 그렇지 못한 것 대비 충분히 맞추었다는 의미로 볼 수 있다.

- 재현율(Recall)

재현율은 실제 정답 중에서 모델이 정답이라고 맞춘 수를 의미한다.

Recall = 정답을 맞춘 수(TP) / 실제 정답 전체(TP+FN)

recall이 높다는것은 알고리즘이 관련있는 결과를 최대한 많이 가져왔다 의미로 볼 수 있다.

모델의 효율성을 어떤 기준으로 판단하는가…?

재현율이 높기만 하다고 좋은 모델이라고 할 수 없다. 모든 예측 결과를 정답이라고 한다면, 정확도는 낮아도 정답은 정답이라고 예측하니 재현율은 100%가 나올 것이다. 마찬가지로, 정밀도도 높기만 하다고 좋은 모델이라고 할 수 없다. 모델의 효율성을 따지기 위해 두 가지를 모두 검토할 필요가 있다.

1.3 Precision과 Recall의 Trade-Off

[그림3] Precision과 Recall의 Trade-Off 설명 이미지

정밀도와 재현률은 상호 보완적 지표이기 때문에 어느 한쪽을 강제로 높이면 다른 한쪽은 수치가 내려가기 쉽다.

1.4 정밀도 재현률 곡선 (Precision-Recall Curve)

[그림4] Precision-Recall Curve

- Recall 값의 변화에 따른 Precision 값을 나타낸 곡선
- 이렇게 얻어진 Precision 값의 평균을 AP라고 하며, 일반적으로 정밀도 재현률 곡선의 면적 값으로 계산된다.

1.5 F1 스코어

F1 스코어는 Precision과 Recall의 조화평균(harmonic mean)을 의미하여,
F1 스코어가 1에 도달할 때 최적의 Precision과 Recall을 의미하며, 0이 최악을 의미한다.

F1 Score** = (2 * Precision * Recall) / (Precision + Recall)

F1 스코어는 편중된 값을 더 크게 조정시킨다.
그렇기에 이상적으로 볼때, F1 스코어는 아래의 분류 시나리오들에서 효과적인 평가지표로 사용될 수 있다.

  • FP와 FN이 동등하게 중요할때 - True Positive를 놓치거나 False Positive 로 잘못 판단했을 경우
  • 둘다 모델에 비슷하게 영향을 끼친다(암환자 분류 예시처럼)
  • 추가되는 데이터가 결과에 크게 영향을 끼치지 않는 경우
  • TN이 중요할 경우(홍수 예측이나, 암환자 예측 등)

1.6 ROC curve

ROC(수용자 반응 특성, Receiver Operating Characteristic) curve는 분류기의 분류 능력을 그래프 좌표로 표현하는 방법이다.
ROC curve를 간단히 정의하면 좌상단에 붙어있는 커브가 더 좋은 분류기를 의미한다고 생각할 수 있다.

[그림5] ROC curve 설명 이미지

라인 위의 점이 의미하는 것은?

모든 가능한 threshold별 FPR과 TPR을 알아보겠다는 의미를 담고 있다.
즉, 현재 이진 분류기의 분류성능은 변하지 않되, 가능한 모든 threshold별 FPR과 TPR의 비율을 알아내서 plot하겠다는 의미를 담고 있다.

1.7 FPR , TPR

False Positive Rate(FPR)와 True Positive Rate(TPR)은 ROC curve에서 각각 x, y축에 표시되는 값을 의미한다.
여기서 우리는 FPR과 TPR 모두 Positive라는 공통적인 단어가 있음을 발견할 수 있다.
“Positive”의 의미는 판단자가 “그렇다”라고 판별했다는 의미이다.
가령 병원에 환자가 암 검사를 받기 위해 내원했고, 의사(즉, 여기서 판단자)가 “환자가 암에 걸렸다”라고 판단한 것이다.
그렇다면 True와 False는 무슨 의미일까?
True와 False는 각각 ‘판단을 올바르게 했다’는 것과 ‘판단을 틀리게 했다’는 것을 표현한다.
즉, 다시 말해 True Positive는 실제로 이 사람은 암에 걸려있고, 판단을 암에 걸렸다고 판단한 것이며, False Positive는 실제로는 암에 걸리지 않았는데도 암에 걸렸다고 ‘잘못’ 판단한 것을 의미한다.

[그림6] FPR / TPR 이미지