개요
머신러닝 분류 모델에서 사용되는 평가 지표에 대해 알아보고자 한다.
Confusion matrix
분류 모델의 예측 결과를 평가하는 데 사용되는 행렬로 주로 binary classification 문제에서 모델의 성능을 예측하고 결과를 평가하는 데 사용됨.
- True Positive (TP) : 실제 Positive인 정답을 Positive라고 예측 (True, 정탐)
- False Positive (FP) : 실제 Negative인 정답을 Positive라고 예측 (False, 오탐) – Type I error
- False Negatives (FN) : 실제 Positive인 정답을 Negative라고 예측 (False, 미탐) – Type II error
- True Negatives (TN) : 실제 Negative인 정답을 Negative라고 예측 (True)
Accuracy(정확도)
- 전체 데이터에서 정답을 맞춘 비율(정답율)
- (TP + TN) / (TP + TN + FP + FN)
Precision(정밀도)
- 모델이 공격으로 판단한 것 중에 공격이라 정확히 판단한(정탐) 비율
- TP / (TP + FP)
Recall(재현율, TPR, sensitivity)
- 실제 모든 공격중에 모델이 공격이라 정확히 판단한(정탐) 비율
- TP / (TP + FN)
F1-Score
- 재현율(Recall)과 정밀도(Precision)의 조화평균
- (2 × Precision × Recall) / (Precision + Recall)
● 생각해 보기 :
- 암환자는 Recall 이 중요 : 암환자한테 암이 아니라고 진단한 것은 큰 문제이다.
Accuracy(정확도)의 문제
Accuracy 는 가장 직관적으로 모델의 성능을 나타낼 수 있는 평가 지표이나 클래스 불균형에 취약
Imbalanced data(불균형 데이터)는 분류 문제에서 각 클래스의 샘플 수가 불균형한 상황을 의미
예를 들어, Error detection 을 위한 데이터셋은 일반적으로 정상 샘플은 많고, 비정상 샘플은 적다.
혹은 의료 진단에서 희귀 질병을 판단하는 경우에도 희귀 질병에 대한 샘플 수는 매우 적다.
이러한 경우 모델은 확률이 높은 클래스만 선택해서 정확도를 속일 수 있다.
즉, 모델은 매우 나쁜 성능을 보이고 있지만 정확도는 높기 때문에 사용자 입장에서 좋은 결과처럼 보일 수 있으므로
정확도만으로 모델의 성능을 평가하기 어렵다.
불균형한 클래스 분포를 가진 데이터셋에서 유용한 F1-Score
F1 score는 Precision(정밀도)와 Recall(재현율) 이 두 평가 지표를 모두 고려하여 모델의 예측 성능을 평가하기 때문에, 정확한 예측과 재현율의 평균을 동시에 고려할 수 있는 장점이 있다.
F1 score는 재현율(Recall)과 정밀도(Precision)의 조화평균이다.
따라서 불균형 데이터에 취약한 모습을 보였던 Accuray 보다 더 정확하게 모델의 예측 성능을 평가할 수 있다.
그 외 지표
Error Rate
- 모델이 전체 데이터에서 잘못 맞춘 비율(오답률)
- Error Rate = (FP + FN) / (TP + TN + FP + FN)
Specificity(특이도, TNR(True Negative Rate))
- 실제 공격이 아닌 정상인 것중 모델이 정상이라고 예측한 비율
- TNR = TN / (TN + FP)
Fall Out(FPR(False Positive Rate))
- 실제 공격이 아닌 정상인 것중 모델이 공격이라고 잘못 예측(오탐)한 비율
- FPR = 1 - Specificity = FP / (FP + TN)
FNR(False Negative Rate)
- 실제 모든 공격중에 모델이 정상이라고 판단(미탐)한 비율
- FNR = 1 - Recall = FN / (TP + FN)
F1 Score 한계와 대안
F1-Score 가 이진 분류 모델을 평가하기 위해 범용적으로 사용하는 metric 이지만, 완벽한 것은 아니다.
- F1 Score는 오차 분포에 대한 정보를 제공하지 않습니다.
- F1 Score는 Precision과 Recall의 동등한 중요성을 가정합니다.
- F1 Score는 다중 클래스 분류에 최적화되어 있지 않습니다.
- F1 Score는 데이터의 특정 패턴에 민감하지 않을 수 있습니다.
- ROC curves
이진 분류 모델에서 임계값을 변화시켰을 때, 모델의 TPR 과 FPR 를 각각 y축과 x축으로 그린 곡선.
모델이 양성과 음성을 얼마나 잘 분류하는지 시각화할 수 있음.
ROC Curves 상에서 왼쪽 위 모서리에 가까운 지점에 위치할 수록 좋은 성능을 나타냄.
직선에 가까울 수록 성능이 안 좋다.
- AUC(Area Under the Curve) Score
ROC curve 에 기반한 값으로 curve 아래의 면적을 의미.
AUC 값은 0부터 1까지의 범위를 가지며, 최적의 모델에서는 AUC가 1에 가까운 값이 됨.
AUC는 임의로 선택된 양성 샘플과 음성 샘플을 비교했을 때, 양성 샘플이 더 높은 확률로 예측되는 경향을 제공.
AUC 값으로 모델을 비교하면, AUC가 더 큰 모델일수록 더 좋은 성능을 가지는 경향.
'AI' 카테고리의 다른 글
TensorFlow 함수형 API 로 AlexNet 논문 구현 (0) | 2024.11.18 |
---|---|
Colab 에서 Kaggle 데이터 API 로 받기 (3) | 2024.11.15 |
ViT 에서 언급한 CNN 의 Inductive bias 에 대해 알아보자 (3) | 2024.11.13 |
.ipynb_checkpoints 을 git 버전 관리에서 제거하기 (0) | 2024.11.12 |
Vanishing Gradient 와 Dead Neuron (0) | 2024.11.02 |