[딥러닝] 분류 모델의 성능평가 방법(Precision, Recall, Accuracy, F1Score, Confusion Matrix)
Confusion Matrix
- True Positive : 정답은 True이고, 분류 결과도 True인 것 (정답)
- False Positive: 정답은 False이고, 분류 결과는 True인 것 (오답)
- False Negative: 정답은 True이고, 분류 결과는 False인 것 (오답)
- True Negative: 정답은 False이고, 분류 결과도 False인 것 (정답)
Precision(정밀도)
- 모델이 True라고 한 것 중에 실제 정답이 True인 것 (모델의 관점)
- 위 confusion matrix에서
- 0~1의 값을 가지며 높을수록 좋음
Recall(재현율)
- 실제 정답이 True인 것 중에 모델이 True라고 한 것 (데이터의 관점)
- 위 confusion matrix에서
- 0~1의 값을 가지며 높을수록 좋음
F1 Score
- Precision과 Recall의 조화평균
-
- 0~1 값을 가지며 높을수록 좋음
Accuracy(정확도)
- 실제 True를 모델이 True라고 예측한것 + 실제 False를 모델이 False라고 예측한 것의 비율
- 위 confusion matrix에서
- 0~1의 값을 가지며 높을수록 좋음
소스코드
여기에서 tensorflow에서 제공하는 다양한 metric 문서를 확인할 수 있고, 각 모델에 맞는 metric을 사용하면 된다. 아래는 이진 분류 모델의 정확도를 계산하는 코드이다.
import tensorflow as tf
y_true = [0,0,1,1]
y_pred = [1,0,1,0]
metric = tf.keras.metrics.BinaryAccuracy()
acc = metric(y_true, y_pred)
print(acc)
# tf.Tensor(0.5, shape=(), dtype=float32)