반응형

예측 모델의 성능을 평가하기 위한 방법은 많은 것들이 있다. 그 중에서 흔히 사용하는 진단 도구인 정확도(Accuracy) 그리고 민감도(sensitivity)와 특이도(specificity)를 사용한 ROC curve를 알아보도록 한다.

회사에서 진행중인 프로젝트 중 건강 상태를 예측해주는 AI 모델의 API를 호출하여 환자들에게 제공해주는 서비스가 있다. 해당 모델은 다른 회사가 만들었지만, 서비스의 핵심 API인 만큼 최소한 사업 계획서의 내용을 이해하고자 본 포스팅을 작성하게 되었다.

예측 모델의 결과가 아래와 같이 정리되어 있다고 가정하고, 이 모델을 정확도(Accuracy)와 ROC curve를 통해 평가해보겠다.

예측 모델 결과 (예시)

이진 분류(Binary Classification)으로 표현되었다.

  • TP = 정답을 잘 예측 (암 환자를 암이라고 진단)
  • TN = 오답을 잘 예측 (정상 환자를 암이 아니라고 진단)
  • FP = 정답을 오답이라고 잘 못 예측 (암 환자를 암이 아니라고 진단)
  • FN = 오답을 정답이라고 잘 못 예측 (정상 환자를 암이라고 진단)

T/F : 잘 예측하였는 지 (예측값과 실제값이 동일하면 T, 아니면 F)

P/N : 예측한 값이 Positive인지 Negative인지

정확도(Accuracy)

예측한 값(P/N)이 정확한 지(T/F)에 대한 비율을 뜻한다.

전체 정확도 = 99.7%

하지만 각 클래스별 정확도는 아래와 같다.

정상환자의 정확도 = 998/1000 = 99.8%

암환자의 정확도 = 9/10 = 90%

암 환자의 정확도(90%)가 잘 반영되지 않는다. (클래스별 분포가 다르기 때문)

따라서 Accuracy은 해당 예측 모델을 평가하기에 적합한 방법이 아니므로 ROU curve와 AUC를 사용한다.

(머신러닝에서는 f1-score를 이용하면 된다고 한다. 왜 인지는 확인이 필요하다.)

주의사항

클래스별 분포도가 같을 때에만 사용 가능

ROU curve와 AUC

암(Positive)으로 진단하는 기준에 따라 변화하는 TPR(민감도, snesitivity)와 TNR(특이도, specificity)의 비율을 그래프로 나타낸 것이 ROU curve이다.

참고 : 그래프 상에서는 TNR(특이도= 정상환 자에게 암이 아니라고 진단) 대신 FPR(1-특이도 = 정상 환자에게 암이라고 진단) 을 사용한다.

AUC는 ROC curve 아래 면적을 지칭한다. 면적이 더 큰 것이 좋은 커브가 된다. (검은색 예측 모델보다 빨간색 예측 모델이 더 성능이 좋다.)

용어 정리

  • 민감도(sensitivity) = 암 환자에게 암이라고, 잘 진단할 확률

    TPR 혹은 recall 이라고도 표현한다.

  • 특이도(specificity) = 정상 환자에게 암이 아니라고, 잘 진단할 확률

    TNR 이라고도 표현한다.

  • Precision = 암이라고 진단했는 데 실제 암 환자일 확률

X축 (FPR, 1-TNR)

TN / TN + FP

Negative(정상 환자)을 Positive(암 진단)으로, 잘못 예측한 비율

X축 = FPR = { 1 - TNR(특이도) } = 정상 환자를 암이라고, 잘못 진단함

Y축(TPR, Recall)

TP / TP + FN

Positive(암 환자)를 정말로 Positive(암 진단)으로, 잘 예측한 비율

Y축 = TPR = Recall = Recall = 암 환자를 암이라고, 잘 진단함


정리

각 클래스별 분포도가 다를 경우, Accuracy만으로 성능을 평가할 수 없으므로 ROC curve를 사용한다.

판단선(초록색)을 조정해가며 TPRTNR의 변화를 확인해보자.

좋은 성능에 대한 지표인 TPR을 높이려면 FN을 줄이고, TP를 높여야 한다. 초록색 선을 빨간색 선의 위치로 이동시키는 것이다. 하지만 그럴 경우 나쁜 성능 지표인 FPR (1-TNR)도 같이 높아지게 된다. FP가 많이 증가하게 되면서 TN이 줄어들게 되는 것이다.

어떤 의사의 실력(예측 모델의 성능)을 판단하기 위해서는 판단선 *(=threshold, 어느 정도의 징후일때 암이라고 예측 할 지)을 연속적으로 바꾸어 가면서 *TPRFPR(1-TNR)을 측정을 해야한다.

⇒ 이러한 trade off의 변화에 대해 TPRTNR을 보기 좋게 그래프로 나타낸 것이 아래와 같은 ROC curve이다.

TPRTNR이 비례할 수 있게 TPRFPR(1-TNR)로 표현한다.

ROC curve의 용도

ROC curve로는 두 가지 용도가 있는 것 같다.

  1. N개의 예측 모델 중 어느 모델이 성능이 좋은 지 (커브선의 면적, AUC이 클 수록 좋음)
  2. 판단선을 움직였을 때의 각 TPR과 FPR의 trade off를 그래프로 한 눈에 파악하여, 판단선을 어디 쯤으로 하는 것이 좋은 지 선택을 도와주는 시각화 도구

판단선의 중요성

단순히 TPR과 TNR이 최대가 될 수 있는 지점(정확도가 제일 높은 지점)을 찾으면 된다고 생각할 수 있지만, 병의 발병률과 치사율에 따라서 어느 쪽에 좀 더 강조를 둘 것인가가 중요하다.

예를 들어 병에 걸릴 확률은 낮더라도 치사율이 높은 경우 일단 환자라고 의심하는 것이 안전하기 때문에 TPR과 FPR이 모두 높아도 괜찮을 수 있다. 정확도가 조금 낮아지지만 위험 부담이 줄어드는 것이다.

정확도와 위험부담이 적은 쪽, 어느 쪽에 조금 더 가중치를 둘 것인지 신중하게 선택해야 한다.


아래 링크된 참고 자료를 보고 이해한 내용을 정리하였습니다.

혹시 내용이 정확하지 않다면 댓글로 알려주시면 감사하겠습니다.

참고 자료

https://nittaku.tistory.com/297

https://m.blog.naver.com/PostView.nhn?blogId=sw4r&logNo=221015817276&proxyReferer=https:%2F%2Fwww.google.com%2F

https://newsight.tistory.com/53

반응형