기계학습 모델 평가지표
기계학습으로 생성한 분류 모델, 예측 모델에서 빠지지 않고 나오는 혼동 행렬 (confusion matrix) 입니다.
이름이 혼동행렬(Confusion matrix)인 이유?
기계가 얼마나 참과 거짓을 혼동하는지 확인하는데 사용하는 표이기 때문입니다.
간단하죠.
5개의 주요 성능 지표
혼동행렬에서는 특이도, 정확도, 민감도, 정밀도, 재현율 다섯개의 값은 외워야 합니다.
이중에서 가장 많이 쓰는 것은 정밀도(precision)와 재현율(recall)입니다.
기계학습 모델의 성능을 한 지표로만 설명하라고 할 때 쓰는 것은 정확도(Accuracy)와 혼동행렬에는 없지만 F1-measure (F1 값)이 있습니다.
F1값은 정밀도화 재현율의 조화평균입니다.
AUROC와 Precision-Recall 그래프
여기서 특이도와 민감도는 ROC 및 AUC 를 계산할 때 쓰고
정밀도와 재현율은 AP 와 Precision-Recall 그래프를 계산할 때 씁니다.
혼동행렬 confusion matrix
아래는 혼동행렬(Confusion Matrix)입니다. 표가 좀 안 이쁘지만 힘들게 그렸으니 알아서 잘 봐주세요.
예측값 Forecast | |||
참 TRUE | 거짓 FALSE | ||
실제값 Actual | 참 TRUE | TP (True Positive) | FN (False Negative) |
거짓 FALSE | FP (False Positive) | TN (True Negative) |
지표 설명 및 계산법
각 지표값의 정의적 설명과 계산법입니다.
민감도 (Sensitivity) | (TP / (TP + FN)) 양성 중 맞춘 양성의 수 |
특이도 (Specificity) | (TN / (FP + TN)) 음성 중 맞춘 음성의 수 |
정밀도 (Precision) | (TP / (TP + FP)) 양성이라고 판정 한 것 중에 실제 양성 수 |
재현율 (Recall) | (TP / (TP + FN)) 전체 양성 수에서 검출 양성 수 |
정확도 (accuracy) | ((TP + TN) / (TP + FN + FP + TN)) 전체 개수 중에서 양성과 음성을 맞춘 수 |
풀어쓴 설명
민감도: 기계가 양성. 즉, positive를 얼마나 잘 꺼내서 맞췄는가를 봅니다.
특이도: 기계가 음성. 즉, Negative인 것을 양성이 아니라고 했는지를 봅니다.
민감도와 특이도는 보통 질병이나 의료에서 많이 쓰는 평가 지표입니다.
정밀도: 기계가 참이라고 했는데 실제 참인 것의 비율입니다. 기계가 얼마나 참을 순도 높게 찍어 내는지 보는 것입니다. 많이 맞추고 아니고는 별로 의미가 없이 기계가 참이라고 한 것 중에 참을 본 것이기 때문에 민감도와 헷갈리면 안됩니다.
재현율: 전체의 실제 참들 중에서 얼마나 기계가 참이라고 골라낸 비율입니다.
정확도: 전체 개수 중에서 기계가 실제 참을 참이라고 하고 실제 거짓을 거짓이라고 한 비율입니다.
습득 요령
처음에 보면 무척 헷갈리는데 외우는 것 보다는 이름과 계산법을 잘 기억하고 의미와 용도를 기억하는 것이 좋습니다. 기억이 안나면 그때 그때 찾아봐도 되지만 매우 빈번하게 쓰이는 것이므로 데이터과학을 공부한다면 그냥 암기해버리는 것이 효율적입니다.