12wk-46: 평가지표의 이해

Author

최규빈

Published

November 21, 2023

1. 강의영상

2. 다양한 평가지표들

- 의문: 왜 다양한 평가지표가 필요한가? (그냥 accuray면 끝나는거 아닌가? 더 이상 뭐가 필요해?)

- 여러가지 평가지표들: https://en.wikipedia.org/wiki/Positive_and_negative_predictive_values

  • 이걸 다 암기하는건 불가능함.
  • 몇 개만 뽑아서 암기하고 왜 쓰는지만 생각해보고 넘어가자!

3. Confusion Matrix의 이해

- 표1

퇴사(예측) 안나감(예측)
퇴사(실제) TP FN
안나감(실제) FP TN

- 표2 (책에없음)

퇴사(예측) 안나감(예측)
퇴사(실제) \((y,\hat{y})=\) (O,O) \((y,\hat{y})=\)(O,X)
안나감(실제) \((y,\hat{y})=\)(X,O) \((y,\hat{y})=\)(X,X)

- 표3 (책에없음)

퇴사(예측) 안나감(예측)
퇴사(실제) TP, \(\# O/O\) FN, \(\#O/X\)
안나감(실제) FP, \(\#X/O\) TN, \(\#X/X\)
  • 암기법, (1) 두번째 글자를 그대로 쓴다 (2) 첫글자가 T이면 분류를 제대로한것, 첫글자가 F이면 분류를 잘못한것

4. 암기를 위한 상황극

- 통계학과를 졸업한 최규빈은 입사하여 “퇴사자 예측시스템”의 개발에 들어갔다.

- 자료의 특성상 대부분의 사람이 퇴사하지 않고 회사에 잘 다닌다. 즉 1000명이 있으면 10명정도 퇴사한다.

A. Accuracy

- 느낌: 정답율

- 정의: \(\text{accuracy}=\frac{TP+TN}{total}=\frac{\#O/O+ \#X/X}{total}\)

  • 한국말로는 정확도, 정분류율이라고 한다.
  • 한국말이 헷갈리므로 그냥 영어를 외우는게 좋다.

- (상확극 시점1) 왜 애큐러시는 불충분한가?

  • 회사: 퇴사자예측프로그램 개발해. 잘 맞출수록 좋고, 계산에 많은 시간이 걸리지 않는 가벼운 predictor일수록 좋아.
  • 최규빈: 귀찮은데 다 안나간다고 하자! -> 99퍼의 accuracy

모델에 사용한 파라메터 = 0. 그런데 애큐러시 = 99! 이거 엄청 좋은 모형이다?

B. TPR (=Recall=Sensitivity)

- 느낌: 이상상황 감지율!

- 정의: \(\text{recall}=\text{sensitivity}=\text{TPR}=\frac{TP}{TP+FN}=\frac{\# O/O}{\# O/O+\# O/X}\)

  • 분모: 실제 O인 관측치 수
  • 분자: 실제 O를 O라고 예측한 관측치 수
  • 뜻: 실제 O를 O라고 예측한 비율

- (상황극 시점2) 우리가 recall을 봐야하는 이유

  • 인사팀: 실제 퇴사자를 퇴사자로 예측해야 의미가 있음! 우리는 퇴사할것 같은 10명을 찍어달란 의미였어요! (그래야 면담을 하든 할거아냐!)
  • 최규빈: 계산빠르고 잘 맞추는 predictor 만들어 달라면서요? 제 predictor는 계산시간은 0이고, accuracy는 0.99에요.
  • 인사팀: (고민중..) 사실 생각해보니까 이 경우는 accuracy는 의미가 없네. 실제 나간 사람 중 최규빈이 나간다고 한 사람이 몇인지 카운트 하는게 더 의미가 있겠다. 우리는 앞으로 recall을 보겠다!

예시1: 실제로 퇴사한 10명중 최규빈이 나간다고 찍은 사람이 5명이면 recall=0.5.

예시2: 최규빈이 아무도 나가지 않는다고 예측해버린다? 실제 10명중에서 최규빈이 나간다고 적중시킨사람은 0명이므로 이 경우는 recall=0.

  • 인사팀 결론: 우리가 필요한건 recall 이니까 앞으로 recall을 가져와! accuracy는 큰 의미없어. (그래도 명색이 모델인데 accuracy가 90은 되면 좋겠다.)

C. Precision

- 느낌: 적중률..

- 정의: \(\text{precision}=\frac{TP}{TP+FP}=\frac{\# O/O}{\# O/O+\# X/O}\)

  • 분모: O라고 예측한 관측치
  • 분자: O라고 예측한 관측치중 진짜 O인 관측치
  • 뜻: O라고 예측한 관측치중 진짜 O인 비율

- (상황극 시점3) Recall 만으로 불충분한 이유

  • 최규빈: 에휴.. 귀찮은데 그냥 좀 만 수틀리면 다 나갈것 같다고 해야겠다. -> 한 100명 나간다고 했음 -> 실제로 최규빈이 찍은 100명중에 10명이 다 나감!

이 경우 accuracy는 91%, recall은 100% (퇴사자 10명을 일단은 다 맞췄으므로).

  • 인사팀: (화가 많이 남) 멀쩡한 사람까지 다 퇴사할 것 같다고 하면 어떡해요? 최규빈 연구원이 나간다고 한 100명중에 실제로 10명만 나갔어요.

  • 인사팀: 마치 총으로 과녁중앙에 맞춰 달라고 했더니 기관총을 가져와서 한번 긁은것이랑 뭐가 달라요? 맞추는게 문제가 아니고 precision이 너무 낮아요.

  • 최규빈: 저번 요청사항이 accuracy 90% 이상, recall은 높을수록 좋다는게 주문 아니었나요? 제 predictor는 accuracy가 91% 그리고 recall은 100% 입니다.

  • 인사팀: (고민중..) 앞으로는 recall과 함께 precision도 같이 제출하세요. 여기에서 precision은 당신이 나간다고 한 사람중에 실제 나간사람의 비율을 의미해요. 이 경우는 \(\frac{10}{100}\)이니까 precision이 10%입니다.

  • 인사팀 속마음: Recall 올리겠다고 무작정 너무 많이 예측하지 말란 말이야!

D. F1-score

- 느낌: 적중률과 민감도의 균형

- 정의: Recall과 precision의 조화평균

- (상황극 시점4) recall, precision을 모두 고려

  • 최규빈: 그런데 recall/precision을 같이 내는건 좋은데요, 둘은 trade off의 관계에 있습니다. 물론 둘다 올리는 모형이 있다면 좋지만 그게 쉽지는 않아요. 보통은 precision을 올리려면 recall이 희생되는 면이 있고요, recall을 올리려고 하면 precision이 다소 떨어집니다.

  • 최규빈: 평가기준이 애매하다는 의미입니다. 모형1,2가 있는데 모형1은 모형2보다 precision이 약간 좋고 대신 recall이 떨어진다면 모형1이 좋은것입니까? 아니면 모형2가 좋은것입니까?

  • 인사팀: 그렇다면 둘을 평균내서 F1-score를 계산해서 제출해주세요.

속마음: AUC 쓰면 더 좋은뎅..

E. Specificity

- 느낌: 안나갈 사람을 안나갔다고 찾아낸 비율

- 정의: \(\text{specificity}=\frac{TN}{FP+TN}=\frac{\# X/X}{\# X/O+\# X/X}\)

- 안중요함

F. FPR

- 느낌: 생사람 잡은 사람의 비율 (오해해서 미안하다, TPR올릴려다 보니까 어쩔수 없었네)

TPR(=recall)을 올리는 가장 편한방법은, 조금만 이상한 징조가 있어도 “너 나갈것 같은데?”라고 몰아가는 것이다. 하지만 이러한 방식은 적중률의 문제가 있다. 또한 멀쩡히 잘 다니고 있는 사람을 생트집 잡아 몰아간다는 문제도 있다.

- 정의: \(\text{FPR}=1-\text{specificity}=\frac{FP}{FP+TN}\)=\(\frac{\# X/O}{\# X/O+\# X/X}\)

- 예시: 아래의 상황을 고려하자.

  • 총 회사원 1000명.
  • 최규빈 연구원이 “퇴사할것 같은 사람”으로 찍은 직원은 100명.
  • 실제 퇴사자 10명, 실제퇴사자 10중 최규빈 연구원이 나간다고 한 사람은 8명.
  • 실제 퇴사자중 최규빈 연구원이 눈치채지 못한 사람은 2명.
  • 최규빈은 92명의 생사람을 잡음..

정리하면

  • O/O = 8
  • O/X = 2
  • X/O = 92
  • X/X = 898
recall = TPR = 8/10 # OO/(OO+OX)
precision = 8/100 # OO/(OO+XO)
FPR = 92/990 # XO/(XO+XX) # 분모의미: 억울한사람이 되려면 일단 열시미 다니고 있어야함
precision, FPR # 비슷해보이는데 좀 다르죠?
(0.08, 0.09292929292929293)

F. ROC curve

- 휴식: 무빙.. (이영미 교수님1이 재밋다해서..)

  • 1 봄날의 햇살

    • predictor: 박병은
    • 박과장!! 약속과 다르지 않소!! –> 사살 –> 진짜 간첩이었으므로 사살하는 순간 precision/recall 동시에 상승
    • 동해물과 백두산이… –> 사살 –> 이 사람은 진짜 간첩인지 아닌지 확실하지 않음. 그렇지만 사살함. 따라서 recall은 올라갈 수는 있겠으나 precision 하락 및 FPR 상승의 위험이 있음.
    • 이런 미친새끼.. 여기서 억울한 휴민트들이 얼마나.. –> 너처럼 계속 classification하면 FPR이 너무 높아진다는 의미
    • 괜찮아.. 내가 알아서 할게 –> 난 FPR 높아도 괜찮아, 위험감수하고 TPR 올리고 싶어. 이런 내 결정은 내가 알아서 책임질게

    - 소감: 총을 얼마나 민감하게 당길지를 결정함에 따라서 FPR과 TRP의 값이 수시로 달라진다.

    - 정의: \(x\)축=FPR, \(y\)축=TPR 을 그린 커브

    - 의미:

    • “x=생사람잡은비율” vs “y=이상상황감지율=recall”을 그린 곡선이 ROC커브이다.
    • 생각해보면 생사람을 잡을 수록 (=\(x\)값이 커질수록) 감지율이 높아진다 (=\(y\)값도 커진다).
    • 생사람 잡은 비율이 매우 적은데 (=\(x\)값이 작은데) 감지율이 높으면 매우 우수한 predictor 이다.
    • 따라서 초반부터 ROC curve가 급격하게 상승하면 좋은 predictor 이다.

    G. AUC

    - 정의: ROC curve의 밑면적

    5. HW

    밀실안에 100명의 사람이 있다고 하자. 이중 이중휴민트는 2명이 있다고 하자. 이중휴민트를 잡기위해서 3명을 사살했다고 하자. 사살된 사람중 실제 이중휴민트는 1명이었다고 하자. 이 경우

    • accurary
    • TPR(=recall)
    • precision
    • FPR

    값을 계산하라.