Bamboo is coming

모델 평가 지표(ROC, AUC, 혼동 행렬, Accuracy, Recall, precision) 본문

인공지능 개념

모델 평가 지표(ROC, AUC, 혼동 행렬, Accuracy, Recall, precision)

twenty 2023. 7. 31. 23:35

Confusion Matrix

분류구분정답값예측값일치 여부
TP(True Positive)진짜 양성관심 범주관심 범주일치 = True
TN(True Negative)진짜 음성관심 X관심 X일치 = True
FP(False Positive)가짜 양성관심 X관심 범주불일치 = False
FN(False Negative)가짜 음성관심 범주관심 X불일치 = False

 
Accuracy(정확도)
정답값과 예측값이 일치한 확률
$Accuracy=\frac{TP+TN}{TP+TN+FP+FN}$
 
Recall(재현율)
정답이 관심 범주인 것들 중에서 예측값이 관심 범주로 예측한 확률
recall = sensivity = hit rate, 정답의 입장에서
$Recall=\frac{TP}{TP+FN}=\frac{모델 정답}{실제 정답}$
 
Precision(정밀도)
예측이 관심 범주인 것들 중에서 정답값이 실제로 관심 범주인 확률, 예측의 질
precision = positive = PPV, 모델의 입장에서
$Precision=\frac{TP}{TP+FP}=\frac{진짜 정답}{모델 정답 예측}$
 
F-score
재현도(Recall)와 정밀도(Precision)가 동시에 좋아야하는 이상적인 모델을 위해 F-score를 활용해서 계산한다.
$F-score = 2×\frac{(precision)×(recall)}{(precision+recall)}$
 
ROC(Receiver operating characteristic)는 1과 가까울 수록 성능이 좋다.
X축 = 1-Specificity = 특이도(FPR, $\frac{TN}{FP+TN}$, 정답이 음성인 것들 중에 예측이 음성인 것)
Y축 = sensitivity = 민감도(TPR,$\frac{TP}{TP+FN}$, 재현율)
정답을 맞춘 TP와 오답을 맞춘 TN를 각각 X, Y축으로 두고 그린 그래프가 ROC 곡선
 
왜 1-Specificity인가?
ROC 커브에서는 높은 민감도와 높은 특이도를 동시에 얻는 것이 이상적입니다. 그런데 ROC 커브에서는 "좋은" 성능을 왼쪽 상단에 위치시키려고 하는데, 이 때 특이도가 높으면 그 값이 1에 가까워지므로 이를 그대로 x축에 사용하면 "좋은" 성능이 오른쪽에 위치하게 됩니다.

따라서 1에서 특이도를 빼면 높은 특이도 (특이도가 1에 가까울 경우)에 대응하는 값이 x축에서 0에 가까워집니다. 이렇게 하면 높은 민감도와 높은 특이도를 동시에 가지는 모델이 ROC 커브의 왼쪽 상단에 위치하게 되어 직관적으로 모델 성능을 파악하기 쉽습니다.


#from sklearn.metrics import roc_auc_score, accuracy_score
>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr
array([0. , 0. , 0.5, 0.5, 1. ])
>>> tpr
array([0. , 0.5, 0.5, 1. , 1. ])
>>> thresholds
array([ inf, 0.8 , 0.4 , 0.35, 0.1 ])

 
True Positive Rate(tpr)
False Positive Rate(fpr)
 
roc_curve 사용하면 tpr, fpr 각각 출력
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
https://heeya-stupidbutstudying.tistory.com/m/entry/ML-%EB%AA%A8%EB%8D%B8-%ED%8F%89%EA%B0%80%EC%A7%80%ED%91%9C-%EC%98%A4%EC%B0%A8%ED%96%89%EB%A0%AC-PRC-ROC-AUC

[ML] 모델 평가지표 - 오차행렬, PRC, ROC, AUC

평가지표의 중요성 통상적으로 정확도(accuracy)를 사용해 머신러닝이나 딥러닝 모델을 평가하곤 한다. 하지만 주어진 데이터셋에 대한 모델의 성능을 재는 방법은 그 외에도 많다. 실전에서 어떻

heeya-stupidbutstudying.tistory.com

https://bioinformaticsandme.tistory.com/328

AUC-ROC 커브

AUC-ROC 커브 StartBioinformaticsAndMe 1. AUC - ROC Curve?: AUC-ROC 곡선은 다양한 임계값에서 모델의 분류 성능에 대한 측정 그래프임*ROC(Receiver Operating Characteristic) = 모든 임계값에서 분류 모델의 성능을 보여

bioinformaticsandme.tistory.com

https://youtu.be/4jRBRDbJemM

 
https://hsm-edu.tistory.com/1033

ROC curve  직접 그려보기

ROC 곡선은 x축은 (1-specificity), y축은 sensitivity 인 곡선입니다. Receiver Operating Characteristic 의 약어입니다. 직역하면 수신자조작특성인데 신호탐지이론?에 나오는 용어라 와닿지 않네요. 통계학의 입

hsm-edu.tistory.com

https://diseny.tistory.com/entry/%ED%98%BC%EB%8F%99%ED%96%89%EB%A0%ACconfusion-matrix?category=906035
ROC 곡선 아주 쉽게 이해하기
 
 
 
 
 
 
 
 
 
 
 
 
 

Comments