INTRO
Precision과 Recall은 위 사진과 같이 둘 다 잘못 했을 때 둘 중 누구를 더 혼내야 하냐와 관련있다.
우선, 통계학에는 크게 두가지 잘못이 있다. 하나는 1종 오류이고 다른 하나는 2종 오류이다.
영가설
어떤 처치 전후 아무런 차이가 없는 것을 영가설이라고 한다. 가설 검증의 목표는 대립가설을 통해 영가설을 기각하는 것이다. 그렇다면, 왜 영가설을 기각해야 할까?
논리 구조상 아닌걸 맞다고 하는 것 보다 맞는걸 아니라고 하는게 더 쉽다. 왜냐하면, 후자의 경우 맞지 않는 사례를 제시하면 되기 때문이다. 그래서, 가설 검증은 대립가설(어? 차이가 있던데?)로 영가설을 기각시키는 걸 목표로 한다.
다만, 기각이란 말이 잘 와닿지 않기 때문에 이 글에서는 편의상 기각 = 맞다 라고 정의하고 작성하겠다.
엄밀히 들어맞는 얘기는 아니지만.. 실험이 유의미 하기를 바라는 연구자의 희망이 어느 정도 담겨 있다고 생각해주시면 감사하겠다..
1종오류와 2종오류
1종 오류가 너무 잦으면 양치기 소년이 된다. 즉, 1종 오류란 맞지 않는 걸 보고 맞다고 하는 것이다.
늑대가 나타나지 않았는데, 늑대가 나타났다고 말하는 것 = 1종 오류이다. 즉, 가짜를 보고 진짜라고 하는 것이 1종 오류이다. 1종 오류는 굉장히 큰 비용을 초래하는데, 위 사진 처럼 양치기 소년이 뻥 한번 친 것 때문에 모든 마을 사람들이 늑대 잡으러 다 달려나왔다. 상당히 빡친 것으로 보인다..
다음으로, 2종 오류는 맞는걸 보고 맞지 않다고 하는 것이다. 2종 오류의 대표적인 사례가 가스라이팅이 아닐까 생각한다.
가스라이팅이라는 단어는 한 연극에서 유래했다. 극중 남자 주인공은 보석을 훔치려고 윗집 여자를 살해하고 보석을 찾아야 하는 상황인데 극 중 배경이 아직 가스등을 사용하던 시절이라서 한 쪽에 불이 켜지면 다른 한 쪽에 불이 줄어드는 그런 구조이다. 어쨌든, 남자가 보석을 뒤지려고 윗집 불을 켜면 아래층 집의 불이 약해진다는 뜻이다. 그래서, 이 불이 약해질때마다 아래층에 있던 살인자의 부인은 남편을 의심하게 되는데 남편이 되려 역으로 부인이 미쳤다면서 몰아가는 그런 내용이다.
즉, 부인이 남편을 의심함 = 사실 남편은 진짜 살인자임 -> 근데 남편이 정신적으로 부인을 학대해서 정상적인 사고를 못하게 만듬 -> 진짜 살인자인 남편이 살인자가 아니라고 생각하게됨
이런 구조인데, 2종 오류의 가장 대표적인 사례는 이런류의 가스라이팅이 아닐까 생각한다. 진짜를 가짜라고 생각하게 하는 것.
다시, Precision과 Recall로 돌아와보자.
Precision은 예측의 관점에서 평가한 지표이고 Recall은 실제값의 관점에서 평가한 지표이다.
PRECISION과 RECALL
PRECISION(1종 오류)
왜냐하면, 아래 이미지에서 원 안의 부분이 실제 positive라고 예측한 영인데 해당 값이 Precision의 분모가 된다. 즉, Precision은 실제 positive라고 예측한 값들 중 제대로 예측한 경우가 얼마나 되는지를 따지는지에 대한 지표이다. 여기서 주요 포인트는 fp 이다. 즉, p(=진짜)라고 예측했는데 그게 f(=가짜) 실제 값과 비교했을 때는 경우인데 앞서 얘기한 양치기 소년이 예시(늑대=진짜라고 예측했는데 그게 뻥이었음=가짜)가 될 수 있다.
RECALL(2종 오류)
다음으로, recall의 분모는 relevent elements인데 직역하자면 positive한 실제값을 의미한다. 무엇의 실제값일까?
1. n(=가짜)라고 예측했는데, 그게 f(=가짜) 즉 가짜의 가짜는 진짜이다. 다시 말하면 실제 값을 가짜라고 예측한 경우
2. p(=진짜)라고 예측했는데, 그게 진짜인 경우
여기서 주요 포인트는 fn이다. 앞서 얘기한 가스라이팅(진짜 살인자인데 가스라이팅 당해서 아니라고 얘기함)이 그 예시가 될 수 있다.
즉, Precision(1종 오류)과 Recall(2종 오류)이냐의 선택은 1종 오류와 2종 오류 둘 중 어느 것을 더 크게 혼낼 것인지와 관련 있다.
- Precision이 낮다 = 1종 오류가 높다(p(=진짜라고 예측했는데), f(=가짜이다), 알고 봤더니 가짜) = fp가 많다.
- Recall이 낮다 = 2종 오류가 높다(n(=가짜라고 예측했는데), f(=가짜이다), 알고봤더니 진짜) = fn이 많다.
라는 의미가 된다. 그래서 나는 1종 오류가 더 높은 애를 혼낼래라고 생각하면 Recall이 높은 모델에 초점을 두고 반대로 2종 오류가 더 높은 애를 혼낼래라고 생각하면 Precision이 높은 모델을 선택하면 된다.
Quiz퀴즈!
두더지를 잡는 모델을 만든다고 하면 Precision과 Recall 둘 중 무엇이 더 중요할까? 일단 내려 찍는 속도만 받쳐준다고 하면 당연히 Recall이 더 중요할 것이다. 왜냐하면 몇 군데 잘못 내려 찍는 위험이(=두더지가 아닌데 진짜 두더지인줄암, 1종 오류) 진짜 두더지를 내려 찍지 않는(=진짜 두더지인데 가짜라고 함, 2종 오류) 위험보다 작을 것이기 때문이다. 그래서, 둘 중 한명을 혼낼 거면 Recall(1종 오류)보다는 Precision(2종 오류)을 더 혼내는게 낫다. 왜냐하면, 두더지를 잡는 것이 목적이기 때문이다.
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!