일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- coursera
- pytorch
- Cost Function
- ssl
- pm2
- 평가지표
- FSL
- error
- Anaconda
- procedure
- git
- CT
- NRMSE
- x-ray
- object detection
- Dual energy X-ray
- MRI
- Homogeneous Coordinates
- MySQL
- 동차좌표계
- https
- ubuntu
- Emoji
- Map-reduce
- nodejs
- ml
- kernel
- relaxation time
- AWS
- EC2
- Today
- Total
Pay it Forward
[평가지표] evaluation metrics for classification (정확도, 정밀도, 민감도, 회수율, F1 score, 특이도, PPV, NPV 등) 본문
[평가지표] evaluation metrics for classification (정확도, 정밀도, 민감도, 회수율, F1 score, 특이도, PPV, NPV 등)
minjoony 2021. 2. 9. 22:34classification의 평가지표로서 굉장히 많은 값들이 존재한다.
흔히 알고 있는 평가지표로는 정확도가 있는데, 정확도만으로는 classification의 성능을 정확히 판단하기 힘들다.
이유를 간단히 예를 들면 다음과 같다.
시험출제자가 10문제의 ox문제를 출제한다고 했을 때, 9문제의 정답을 o로하고 단 한문제를 x로 출제하였다고 가정하자.
이 때, 우리가 어떤 문제에 대해서든 정답을 o로만 말하는 model을 만들었다고 한다면
올바른 model이 아님에도 불구하고 위의 문제를 풀었을 때, 정확도가 90% 달하게 된다.
따라서 정확도(accuracy)만을 평가지표로 삼는 것은 model 성능 평가로서 부적합하다.
따라서 정밀도(Precision), 회수율(Recall)등의 metric들을 많이 이용한다.
이 글에서는 여러 metric들을 간단히 소개하고 수식을 정리해보았다.
이해를 돕기위해 문제에 대한 예시와, 병 진단 예시를 같이 들었다.
Confusion matrix에 대한 설명
Confusion matrix에서 각각이 무엇을 나타내는지 헷갈린다면, 두개의 글자(letter)를 나누어 생각하면 쉽다.
뒤에 위치한 글자(P 혹은 N)는 predict, 즉 진단 결과(Positive : 병이 있다, Negative : 병이 없다)를 나타내고,
앞에 위치한 글자(T 혹은 F)는 진단 결과가 실제와 같은지 다른지(True : 맞았다, False : 틀렸다)를 의미한다.
예를 들면, TP는 뒤의 글자가 P이므로 병이 있다고 진단하였고 앞의 글자가 T이므로 맞았다. 즉, 실제로 병에 걸렸다. FP는 병이 있다고 진단하였으나 병에 걸리지 않은 경우를 의미한다.
Confusion matrix에서 각각이 무엇을 나타내는지 헷갈린다면, 두개의 글자(letter)를 나누어 생각하면 쉽다.
뒤에 위치한 글자(P 혹은 N)는 predict, 즉 진단 결과(Positive : 병이 있다, Negative : 병이 없다)를 나타내고,
앞에 위치한 글자(T 혹은 F)는 진단 결과가 실제와 같은지 다른지(True : 맞았다, False : 틀렸다)를 의미한다.
정확도 (Accuracy)
전체 문제중에서 정답을 맞춘 비율.
모든 진단 case중에서 병에 걸린사람은 걸렸다고, 안걸린 사람은 안걸렸다고 말한 비율.
값이 1에 가까울수록 우수하다고 평가한다.
$ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} $
정밀도 (Precision)
정답을 1이라고 제출한 문제중에서 답을 맞춘 비율.
병에 걸렸다고 진단한 case중에서 실제로 병에 걸린 비율.
값이 1에 가까울수록 우수하다고 평가한다.
$ Precision = \frac{TP}{TP + FP} $
민감도 (Sensitivity), 회수율 (Recall), TPR (True Positive Rate)
정답이 1인 문제들 중에서 답을 맞춘 비율.
병에 걸린 경우에 병에 걸렸다고 진단하는 비율.
값이 1에 가까울수록 우수하다고 평가한다.
$ Sensitivity = \frac{TP}{TP + FN} = Recall = TPR $
F1 score
정밀도(Precision)과 회수율(Recall)의 조화평균.
값이 클수록 우수하다고 평가한다.
$ 2 * \frac{Precision * Recall}{Precision + Recall} $
(그냥 평균을 쓰지 않고, 조화평균을 쓴 이유는 값이 클수록 우수하다고 평가하기 위함이다.)
특이도 (Specificity) = 1 - FPR (False Positive Rate)
정답이 0인 문제들 중에서 답을 맞춘 비율.
병이 실제로 없는데 병에 걸리지 않았다고 진단하는 비율.
값이 클수록 우수하다고 평가한다.
$ Specificity = \frac{TN}{TN + FP} $
FPR (False Positive Rate)
정답이 0인데 1이라고 말한 비율.
병에 걸리지 않았는데 병에 걸렸다고 진단하는 비율.
$ FPR = \frac{FP}{FP+TN} $
PPV (Positive Predictive Value)
Precision과 동일한 개념.
정답을 1이라고 제출한 문제중에서 답을 맞춘 비율.
병에 걸렸다고 진단한 case중에서 실제로 병에 걸린 비율.
값이 1에 가까울수록 우수하다고 평가한다.
$ PPV = \frac{TP}{TP + FP} = Precision$
NPV (Negative Predictive Value)
정답을 0이라고 제출한 문제중에서 답을 맞춘 비율.
병에 걸리지 않았다고 진단한 case중에서 실제로 병에 걸리지 않은 비율.
$ NPV = \frac{TN}{FN + TN} $
'Machine Learning > Study' 카테고리의 다른 글
[Term] Homogeneous Coordinates (동차좌표계) 란? (1) | 2021.02.02 |
---|---|
[평가지표] ROC curve와 AUC (0) | 2021.01.28 |
[ML] KNN 알고리즘이란? (0) | 2020.07.25 |
[ML] 인공지능 Object Detection에서의 mAP란? (1) | 2020.03.30 |