기계학습(ML : Mahine Learning) 모델의 성능을 측정하는 통계적 지표로는 다음과 같이 네 가지 종류가 존재한다
인식 성능 측정
Accuracy: 정확도
혼동 행렬(Confusion Matrix)을 이용한 방식 (또는 오차행렬이라고 부름)
Recall : 재현율
Precision : 정밀도(정확율)
F1-score : Recall, Precision의 산술평균
각 지표에 대한 공식을 알아보도록 하자
인식 성능 측정
Accuracy (정확도)
가장 보편적으로 간단하게 성능을 측정하는 방법으로 공식은 아래와 같다
Accuracy = (올바르게 예측된 데이터 수) / (전체 데이터 수)
Accuracy의 문제점
데이터에 따라 매우 잘못된 통계 결과가 나올 수 있는데 예로 y label이 심각한 불균형일 때를 들 수 있다.
눈이 오는 날을 True/False로 예측하는 모델이 있다고 하자. 해당 모델은 항상 False로 예측하는 엉터리 모델이지만 1년 중 눈이 오늘 날은 매우 적기 때문에 Accuracy는 높게 나올 수 밖에 없다. 따라서 Accuracy로는 True/False 값이 편향적인 모델에서는 적절한 성능 평가를 하지 못한다.
혼동 행렬(Confusin Matrix)을 사용한 방식
오류 경향을 세밀하게 분석하는데 사용하는 방식으로, y label의 종류가 True/False 두 가지인 경우의 혼동행렬은 아래와 같다
- Column : 실제 정답
- Row : 예측 결과
Actually Positive | Actually Negative | |
Predicted Positive | TP(True Positives) | FP(False Positives) |
Predicted Negative | FN(False Negatives) | TN(True Negatives) |
Recall (재현율)
Recall은 실제로 True인 데이터를 모델이 True로 인식한 데이터의 수에 해당한다.
Recall = (모델이 True로 예측한 데이터 수) / (실제로 True인 데이터 수)
이를 혼동 행렬 방식으로 표현하면 아래와 같다
Recall = TP / TP + FN
즉 위의 예시에 적용해보면 공식은 아래와 같이 표현할 수 있다
Recall = (모델이 눈이 내릴거라 예측한 날의 수) / (실제로 눈이 내린 날의 수)
이 경우 위에서 가정한 모델은 항상 False라고 예측하기 때문에 정확도는 높지만 Recall은 0이 나오게 된다
Recall의 문제점
반대로 항상 True로 예측하는 모델일 경우 Recall은 항상 1이 나오게 되는 문제점을 가진다. 즉, 항상 False로 예측하는 모델과 실제로 다를 바 없지만 높은 Recall을 보유하게 된다
Precision(정밀도)
Precision은 모델이 True로 예측한 데이터 중 실제로 True인 데이터의 수에 해당한다
Precision = (실제로 True인 데이터 수) / (모델이 True로 예측한 데이터 수)
이를 혼동 행렬 방식으로 표현하면 아래와 같다
Precision = TP / TP + FP
즉 위의 예시에 적용해보면 공식은 아래와 같이 표현할 수 있다
Precision = (실제로 눈이 내린 날의 수) / (모델이 눈이 내릴 거라고 예측한 날의 수)
Precision & Recall
precision과 recall은 trade-off(상충관계), recall/precision 지표의 중요성은 모델 특성에 따라 달라질 수 있다.
1. Precision이 더 중요 지표일 경우
예) 스팸메일 여부를 판단하는 모델
2. Recall이 더 중요 지표인 경우
예) 암환자 예측이나 보험사기 예측 모델: 실제 Positive인 데이터를 잘 맞췄는지가 더 중요한 테스크
F1 Score
모델의 성능을 측정하는데 있어서 Precision과 recall은 유용하게 사용되는데, 이 두 가지 지표를 이용하여 성능을 계산하는 F1-score은 모델이 얼마나 효과적인지를 설명할 수 있는 한 가지 지표이다
F1 score은 precision과 recall의 조화평균으로 공식은 아래와 같다
2x{(Precision * Recall) / (Precision + Recall)}
일반적인 평균이 아닌 조화평균을 사용하기 때문에, precision과 recall이 0에 가까울수록 F1-score도 동일하게 낮은 값을 가질 수 있다
ROC 커브
수신기 조작 특성(Receiver Operating Characteristic(ROC))
거짓 양성 비율(False positive rate(FPR)
- FPR = FP / (FP + TN) = 1 - TNR
진짜 양성 비율(True positiv rate(TPR))
- TPR = TP / (TP + FN) = 1 - FNR
곡선 아래 면적(Area under the curve(AUC))
- 곡선 아래 면적이 1에 가까워질 수록 좋은 분류기에 해당
'인공지능(AI)' 카테고리의 다른 글
Few-shot Learning, 퓨샷 러닝 (0) | 2022.08.10 |
---|---|
[ML] 사이킷런 클래스 SGDClassifier : 선형분류 (0) | 2021.10.06 |
[ML] 은닉 마르코프 모델 : Hidden Markov Models(HMM) (0) | 2021.03.18 |