머신러닝

머신러닝 분류 모델의 평가 지표 - 정확도, 정밀도, 재현율, 민감도, F1 스코어

데이터요리사 2023. 7. 14. 17:55

1. 머신러닝 모델의 '평가'

- 학습이 완료된 모델이 예측한 값과 실제값이 얼마나 일치하는지를 계산하여 모델의 성능을 판단.

- 이 때 사용하는 데이터는 학습 이전에 미리 분할해 두었던 테스트 셋임.

- 머신러닝의 기법(분류 모델이냐? 회귀 모델이냐? 군집 모델이냐?)에 따라 평가 지표는 달라짐.

 

2. 분류 모델의 평가 방법

- 분류 모델의 성능을 평가하기 위한 가장 기본적인 방법은 정확도(Accuracy)임.

- 정확도 이외에 재현율, 정밀도, F1 점수 등이 있고, 데이터와 모델이 어디에 사용되느냐에 따라 성능 지표를 제대로 설정해야함.

- 무작정 정확도가 높다고 좋은 모델이 아님.

- 각 성능 지표를 이해하기 위해서 가장 기본이 되는 혼동행렬에 대한 이해가 필요함.

 

 

3. 혼동행렬(Confusion Matrix)

- 혼동행렬은 기계가 문제를 푸는 과정에서 얼마나 헷갈려하고 있는지혼란(confuse)스러워하고 있는지 정도를 알려줌.

- 객관식 문제를 풀 때, 답이 1번인 것도 같고, 2번인 것 같기도 하고.. 헷갈리는 것 처럼 모델도 혼란스러워하면서 답을 도출함.

- 실제 긍정인 값을 어떤 비율로 긍정으로 맞추고 있는지, 부정으로 틀리고 있는지를 행렬(matrix) 형태로 나타내고 그 값을 확인해보면, 학습 모델의 정확도 뿐만 아니라 전체적인 학습 상태를 확인하는데 유용함.

- 혼동행렬은 분류 알고리즘의 성능을 나타내기 위해 예측값과 실제값이 일치하는지 여부를 행렬로 분류한 표로 나타내기 때문에 ‘오분류표’라고 부르기도 함.

 

 

3-1) 혼동행렬의 지표 설명

구분 분류값 설명
예측이 정확한 경우 True Positive (TP) 실제로 긍정인데 예측도 긍정으로 함
True Negative (TN) 실제로 부정인데 예측도 부정으로 함
예측이 틀린 경우 False Positive (FP) 실제로 부정인데 예측을 긍정으로 함
False Negative (FN) 실제로 부정인데 예측을 긍정으로 함

 혼동행렬의 각 지표를 이용하여 수식을 생성하여 분류 모델을 다양한 방법으로 평가할 수 있음.

 

4. 정확도(Accuracy)

정확도란 전체 테스트 셋 중 긍정을 긍정으로 예측한 경우와 부정을 부정이라고 예측한 경우가 얼마나 되는지 비율을 계산한 값으로,  얼마만큼 정답을 맞추었는지를 확인할 수 있는 지표임.

-  혼동행렬에서 표현할 수 있는 전체 경우의 수(TP+TN+FP+FN)  중에 정답을 맞춘 경우의 수(TP+TN) 의 비율을 계산

-  일반적으로 분류 모델을 정확도를 사용하여 평가를 진행.

-  학습에 사용한 데이터가 불균형하거나 데이터의 성격에 따라  특이도(Specificity), 재현율(Recall) 등의 다른 지표를 사용하는 것이 효과적일 때도 있음.

 

 

5. 재현율(Recall), 민감도(Sensitivity)

- 재현율이란 긍정인 값을 긍정으로 예측한 비율, TPR(True Positive Rate).

 

재현율(Recall) = 민감도(Sensitivity) = TP / (TP+FN)

 

- 재현율을 체크해야하는 경우는 데이터 셋이 한쪽으로 쏠려있는데, 거짓 긍정(False positive) 케이스를 낮추는게 중요한 경우임

- 예를 들어서 암 판단 케이스가 있음.

- 암 판단 케이스에서 오답을 내는 사례는 두 가지 케이스임.

- 암인데 정상이라고 하거나, 정상인데 암이라고 하거나...

- 이중에서  더 X되는 케이스는 암인데 정상이라고 하는 케이스임.

- 이런 분야에서는 전체 케이스에 대한 정답률을 보기 보다는 암을 진짜 암이라고 예측한 정답률을 보는 것이 더 중요함.

 

 

악성 종양과 양성 종양을 분류하는 문제는 데이터의 중요도 측면 뿐만 아니라 데이터의 분포 측면에서도 정확도가 아닌 다른 지표를 사용할 필요가 있습니다. 실제로 데이터를 보면 양성 종양의 데이터가 악성 종양의 데이터보다 훨씬 더 많이 포함되어 있습니다. 다음 사례와 같이 100개의 데이터 중에 실제로 악성 종양인 데이터는 7%만 존재하는 상황에서 모델의 정확도를 확인해보면 95%로 꽤 좋은 성능의 모델인 것으로 판단됩니다. 실제 악성 종양 7개중 3개만 악성 종양으로 판단할 수 있다면 재현율 값은 50%도 못 미치는 성능을 보이기 때문에, 모델의 성능 개선이 필요하다는 것을 판단할 수 있습니다.

 

6. 정밀도(Precision) 

- 스팸메일 필터링 모델은 암 예측 모델과는 상황이 다름.

- 스팸메일 필터링 시스템의 실패는 스팸 메일을 정상 메일로 판단하는 케이스거나 정상 메일을 스팸함에다가 꽂아넣는 케이스임.

- 이 중 더 끔찍한 것은 정상 메일을 스팸함에 꽂아버려서 중요한 메일을 놓쳐버리게 되는 상황임.

- 이 경우에는 예측의 정확성을 판단하는데 더 중요함.

- 즉 정밀도는 긍정으로 예측한 것 중 실제로 정답(스팸메일)을 얼마나 맞췄는지 보는 지표임 

 

정밀도(Precision) = TP/ (TP+FP)

 

 

7.  F1 Score

- 머신러닝 모델을 돌리다보면 평가 지표 수치에 매몰되어 점수 높이기에만 집중하게 되기도 함.

- 그러다보면 모델이 이상하게 변하게 되는데, 정밀도와 재현율은 상호 영향을 미치는 지표이기 때문에 균형있게 보는 시각이 필요함.

- 이 두 지표를 균형있게 확인하기 위해서 두 값의 조화평균을 계산한 F1 Score를 함께 사용하는 것이 바람직함

 

F1 Score(F1) = 1/{(1/precision)+(1/recall)}=2×(precision∙recall)/(precision+recall)

728x90