개발 공부/Machine Learning, Deep Learning

평가지표(1) - Accuracy, Recall, Precision, F1 Score, F beta Score

뚜덩ㅇ 2022. 8. 21. 15:48
반응형

인공지능에서  Metrics는 해당 모델의 성능을 판단하는 평가 지표를 말한다.

이를 계산하는 방법이 꽤 다양한데, 그렇기 때문에 어떤 모델이냐, 어떤 문제냐에 따라 적절한 metrics를 사용해야 한다. 

그 중 대표적인 Metrics 몇가지를 정리해 보려고 한다.

 

우선 비가 오는지 안오는지를 맞추는 경우를 생각해 보자. 비가 오면1 오지 않으면 0이다.

Confusion Matrix

  Predicted
Positive (1) Negative (0)
Actual Positive (1) True Positive
(TP)
False Negative
(FN)
Negative (1) False Positive
(FP)
True Negative
(TN)

 

TP : 실제로 비가 왔고 (Actual Positive) 모델도 비가 온다고 예측 (Predicted Positive) 한 경우

FP : 실제로 비는 안왔지만(Actual Negative) 모델은 비가 온다고 예측한 경우

FN : 실제로 비가 왔지만 모델은 비가 안온다고 예측 (Predicted Negative) 한 경우

TN : 실제로 비가 안왔고 모델도 비가 안온다고 예측한 경우

 

이렇게 총 4가지 경우의 예측이 나오는데 간단한 방법 중 하나는 바로 Accuracy다.

Accuracy

모든 예측중에서 비가 온것을 제대로 맞춘 것(TP)과 비가 오지 않는 것을 제대로 맞춘 것(TN)을 계산 한 값이다. 한마디로 제대로 맞춘 비율이 얼마냐고 볼 수 있겠다.

 

Precision (정밀도)

Precision 정밀도는 1로 예측한 것 중 실제 1이었던 경우를 계산한 값이다. 비가 올 것이라고 예측했는데 예측한 날 모두 정말 비가 왔다면 정밀도가 1이다. 

Recall (재현율)

Recall 재현율은 실제 1이었던 경우 중 모델이 1이라고 예측한 경우를 계산한 값이다. 실제 비가 온 날 중 모델이 비가 올거라고 예측한 날의 비율이라고 볼 수 있다. Precision과 같이 1을 1이라고 맞춘 TP를 보지만 실제중에 맞춘 비율인지, 또는 예측한것 중에 맞춘 비율인지 관점이 서로 다르다.

 그런데 365일 매일 비가 온다고 예보 한다면 실제 비가 온 날도 맞춘 것이니 Recall값이 100%일 것이다. 하지만 그것이 좋은 모델이라 할 수 있을까? 또 정말 확실할 때만 비가온다고 예측하여 365일중 2일을 비가 온다고 예보하여 맞았을 때, 이것 역시도 Precision은 100%이지만 좋은 모델이라 할 수 있을까? 이러한 이유 때문에 Precision과 Recall은 하나만 잘 쓰이질 않고 두 지표가 모두 높은지를 고려해야 한다.

 

F1 Score

 F1 Score는 위의 Precision과 Recall 두 지표를 모두 고려하기 위한 것이다. Precision과 Recall은 서로 같은 지표가 아니기 때문에 역수의 차원에서 평균을 구한뒤 다시 역수를 취해 원래 차원의 값으로 돌아오는 방식인 조화평균을 사용한다. 역수를 취해 평균을 구하기 때문에 Recall이나 Precision이 0이면 계산할 수 없다.

 

F beta Score

 Precision과 Recall의 조화평균 값을 구할 때 한 쪽에 가중치를 더 두고 싶을 때 F beta Score 지표를 사용 한다. beta값이 1.0보다 큰 경우 Recall의 비중이 커지고, 1.0보다 작은 경우 Precision 비중이 커진다. beta값이 1인 경우 F1 Score가 된다.

 

 

 

 

 

 

 

 

 

 

반응형