재현율(recall)에 대해 정확히 알기
1. 문제제기
class간 불균형 데이터를 classification할 때 모델이 데이터가 많은 class(다수 class)에 분류하려는 경향이 있다는 것은 잘 알려진 사실
왜냐하면 class 1과 0이 97:3으로 나뉘어져있다고 해보자
모델이 전체 데이터를 예측할 때 전부 class 1로 예측하면 무려 97% 정확도를 얻는다
그러면 여기서 문제
데이터가 적은 소수 클래스의 민감도가 낮아지는가??
2. 생각
소수 클래스의 민감도라는 것이 도대체 무슨 말이지?
내가 아는건 이런 혼동행렬에서 민감도는 실제 긍정인 것중에 모델이 긍정이라고 예측한 것의 비율
TP/(TP+FN)
특이도는 실제 부정인 것중에서 모델이 부정이라고 예측한 것의 비율
TN/(FP+TN)
정밀도는 모델이 긍정이라고 예측한 것중에서 실제 긍정인 것의 비율
TP/(TP+FP)
소수 클래스의 민감도가 무슨 말이지??
긍정이 소수라고하면 상관없는데... 부정이 소수라고한다면..??
여기서 혼란이 생긴다
3. recall과 precision
https://www.koreascience.or.kr/article/JAKO202025863869781.pdf
https://stackoverflow.com/questions/14117997/what-does-recall-mean-in-machine-learning
여러가지 인터넷 검색해본 결과로 정확하다?고 말하기는 어렵지만 이게 맞는것 같아
분류 모델의 성능 평가지표로 accuracy, recall, precision이 있다.
accuracy = (TP+TN)/(TP+TN+FP+FN)
전체 데이터에 대해서 모델이 정확히 예측한 것의 비율이 정확도
여기까지는 알기 쉬운데 여기서부터는 생각을 바꿔야한다
-----------------------------------------------------------------------------------------
precision = TP/(TP+FP)
recall = TP/(TP+FN)
정밀도는 모델이 긍정이라고 예측한 것중에서 실제 긍정인 것의 비율
민감도 = 재현율은 실제 긍정인 것중에 모델이 긍정이라고 예측한 것의 비율
긍정과 부정이라는 말에 주목하지 말고 긍정과 부정을 특정 class라고 바꿔서 생각하면
정밀도는 특정 클래스로 예측한 자료 중 올바르게 예측한 비율
재현율은 실제 특정 클래스에 속한 자료 중 올바르게 해당 클래스로 예측한 비율을 의미한다
이런 일반적인 의미에서는 재현율을 민감도라고 하지 않는다
재현율은 '재현하다'라는 의미를 생각한다면 상당히 잘 지었다고 볼 수 있는데
모델이 실제 class에서 올바르게 해당 class로 예측했다는 것은 올바르게 해당 class로 재현했다는 의미니까
아무튼 수식으로부터 우리는 재현율은 분모 TP, FN이 긍정 class에 속하고 TP도 긍정 class에 속하므로 오직 하나의 class에서만 결정되는데
정밀도는 TP, FP가 각각 긍정과 부정 class에 속하므로 불균형 데이터에서 반드시 다수 class에 영향을 받는다
이는 정확도도 마찬가지다.
재미있는 부분이 불균형 자료에서 재현율이 어떻게 변하는지 설명한 그래프가 있다
불균형도 IR = (다수 클래스의 데이터 수)/ (소수 클래스의 데이터 수)
불균형도가 심해질수록 소수 class의 재현율이 상당히 감소한다
이는 불균형도가 심해질수록 모델이 실제로 소수 class에 속하는 데이터임에도 불구하고 다수 class로 예측하기 때문에 소수 class에 대한 재현율이 떨어짐을 의미한다
하지만 정밀도는 소수 class의 경우 낮긴한데 큰 의미는 없다고 한다
왜냐하면 소수 class를 다수 class로 오인하는 경우가 있지만 그만큼 소수 class의 데이터 비율도 적어지기 때문에 효과가 서로 상쇄되기 때문이라고 설명하고 있다
4. 민감도(sensitivity)와 특이도(specificity)
명확한 설명은 없지만 여러가지 인터넷 검색해보고 결론을 내린 결과
민감도와 특이도는 class의 긍정과 부정에 주목할때 특별히 생각하는 지표이다.
서로 상반되는 특징을 가지는 class라는 점에 주목할 때 사용한다고 생각하면 좋다.
민감도는 실제로 긍정인 class의 자료에 대해서 모델이 긍정이라고 예측한 비율
특이도는 실제로 부정인 class의 자료에 대해서 모델이 부정이라고 예측한 비율
그러면 여기서 생각할 수 있는 부분은 재현율이 "특정 클래스의 자료에 대해서 모델이 해당 클래스로 올바르게 예측한 비율"이라고 정의한다고 했는데
그렇다면 재현율과 특이도도 결국 같은 의미이지 않은가?
이에 대해 명확히 설명하고 있는 부분은 없는데
여러가지 찾아본 결과는 긍정과 부정에 특별히 주목할때는 '민감도와 특이도' >>> 그리고 여기서 '민감도=재현율'이라고도 하지만
여기서 재현율은 "특정 클래스의 자료에 대해서 모델이 해당 클래스로 올바르게 예측한 비율"이 아니고 "실제로 긍정인 class의 자료에 대해서 모델이 긍정이라고 예측한 비율"이라고 생각해야한다
-----------------------------------------------------------------------------------------------------------------------
'다시보는 통계학' 카테고리의 다른 글
추정량의 오차는 왜 추정량의 표준편차일까? (0) | 2022.06.01 |
---|---|
피어슨 상관계수, 스피어만 상관계수, 켄달의 타우 완벽비교 (0) | 2022.05.23 |
표집분포(sampling distribution)와 표본분포(sample distribution) (0) | 2022.02.21 |
조건부독립의 성질 (0) | 2022.01.30 |
회귀분석에서 회귀계수는 유의하지만 절편이 유의하지 않다면..? (0) | 2022.01.30 |