본문 바로가기

머신러닝 분류 모델의 성능 평가 지표 - Precision (정밀도), Recall (재현율), Accuracy (정확도), F1 Score (조화평균)

 

예측 모형을 구성하는 것뿐만 아니라 예측을 한 한 모형의 해석도 상당히 중요하다.

자신이 예측해 놓은 자료를 해석을 못한다면 아무런 소용도 없을 것이다. 다양한 예측 모형이 있을 것이고, 거기에 맞는 다양한 성능 평가 지표들이 있을 것이다. 오늘은 머신러닝 분류 모델의 성능 평가를 하는 지표에 대해서 알아보도록 하겠다. 머신러닝, 딥러닝을 하고자 하는 사람들은 한 번을 들어 보았을 것이다. 거기에 해당하는 각 지표들 Precision (정밀도), Recall (재현율), Accuracy (정확도),  F1 Score (F1 스코어) 등에 대해서 알아보도록 하겠다. 

 

분류 성능 평가 지표

 

분류 모델은 기본적으로 정답과 예측치가 맞고 틀린 것에 대해서 알 수 있을 것이다. 성능지표를 자세하게 알아보기에 앞서 각각 맞고, 틀리는 것을 어떻게 표기하고, 해석하는지 잘 살펴볼 필요가 있다. 위에 그림은 예측치와 정답치의 맞고 틀림을 나타내고 있다. 인터넷상에서 모두 비슷한 그림을 찾아볼 수 있는데, 예측치(분류 결과), 실제 정답의 위치를 잘 살펴보고 표를 보아야 할 것이다. 위치가 각각 다르게 표기되어 있을 수 있다. 

 

- True Positive: 실제 Positive인 정답을 Positive라고 예측 (True)
- True Negative: 실제 Negative인 정답을 Negative라고 예측 (True)
- False Positive: 실제 Negative인 정답을 Positive라고 예측 (False) – Type I error
- False Negative: 실제 Positive인 정답을 Negative라고 예측 (False) – Type II error

 

 

1) Accuracy (정확도) 

- 개념: 예측치가 정답과 동일하게 예측을 했는지를 보는 지표 (True 값을 True, False 값을 False 예측하는 비율) 

- 수식: 

     (True Positives + True Negatives ) / ( True Positives + True Negatives + False Positives + False Negatives ) 

- 지표 값: 0~1 사이값이 나오며, 1에 가까울수록 좋은 값 

- 단점 : True값이 너무 적은 상황이고 모두 False 값일 때, 정확도가 높다고 좋은 모델이라고 활용 불가하다. 

 

2) Precision (정밀도) 

- 개념: 전체 예측한 값 중에서 얼마나 많이 True 값을 맞추었느냐를 보는 데 사용하는 지표 

- 수식: 

     True Positives / ( True Positives + False Positives ) 

- 지표 값: 0~1 사이값이 나오며, 1에 가까울수록 좋은 값 

- 단점: True값이 아닌데 True 값이라고 예측했을때, 문제가 되는 경우가 있는 상황에서는 사용하면 안 된다. 

 

 

3) Recall (재현율)

- 개념: 전체 정답지 중에서 얼마나 많이 True 값을 맞췄는지를 보는데 사용하는 지표 

- 수식: 

    True Positives / ( True Positives + False Negatives ) 

- 지표 값: 0~1 사이값이 나오며, 1에 가까울수록 좋은 값 

- 단점: True 값만이 중요 지표로 사용할때는 사용이 불가능하다. 

 

4) F1-score (조화평균)

- 개념: 재현율(recall), 정밀도(precision)는 상호 보완적인 관계에 있다. 따라서 한쪽으로 너무 치우치지 않게 균형 있게 반여하여 성능을 높여 주는 데 사용할 수 있다.

- 수식: 

     2 * ( ( Precision * Recall ) / ( Presicion + Recall ) ) 

- 지표 값: 0~1 사이 값이 나오며, 1에 가까울수록 좋은 값 

 

 

* 개념과 함께 어떤 상황에 어떤 지표를 사용하는 것이 좋을까? 

      (F1 score는 잘 예측하고 있는 항상 잘 살펴보도록 하자) 

 

상황 1) 남녀 공학에서 학교에서 남자를 예측해야 되는 경우 

정답: Accuracy (정확도)  

이유: True/ False 값 모두 정답을 얼마나 맞혔는지 살펴 보아야 하는 경우이기에 Accuracy 값이 중요하다. 

 

상황 2) 눈이 오는 날짜를 맞추는 경우 

정답: Precision (정밀도)  

이유: 눈이 오는 날이 가장 중요하고, 이를 집중에서 예측을 해야 되기 때문에 무조건 정답을 얼마나 맞혔는지에 집중해서 본다. 

 

상황 3) 암 환자를 예측하는 경우 

정답: Recall (재현율)

이유:  암 환자가 극히 드문 케이스일 것이다. 하지만 오진으로 암환자가 아닌 환자를 암환자로 분류해 버린다면 큰일 날 것이다. 눈 안 오는 날이 눈 오는 날로 예측하는 경우와는 다르게 엄청난 파장을 이르킬 것이다. 이 경우에는 암환자만 얼마나 맞추는지에 집중에서 모델을 구축해야 할 것이다. 

 

각각의 상황에 맞추어서 예측모형 성과지표를 잘 활용한다면 보다 좋은 모델 분류기를 만들 수 있을 것이다.