brunch

분류 모델은 어떻게 평가를 할까?

출퇴근길에 공부하는 머신러닝

by 별똥별 shooting star


들어가며

분류 모델의 성능을 평가하는 것은 중요한 과정이다. 이를 통해서 모델이 얼마나 잘 작동하는지 알 수 있으며, 모델의 성능을 개선할 수 있는 방향을 제시할 수 있기 때문이다. 그리고 평가 지표는 모델의 예측 성능을 다양한 관점에서 해석하게 해 준다. 지금부터 이러한 분류 모델은 어떻게 평가를 하고 해석하는지 살펴보도록 하겠다.



Confusion Matrix(혼동 행렬)

Confusion Matrix는 분류 모델의 성능을 평가하는 기본 도구이다. 이 행렬은 모델의 True Positive, False Negative, False Positive, True Negative의 4가지 경우를 보여준다. 그림을 예시로 들면 다음과 같다.


분류평가.png


True Positive(참 양성) : 모델이 Positive로 예측하였고 실제 값도 Positive인 경우이다.

False Negative(거짓 음성) : 모델이 Negative로 예측하였으나 실제 값은 Positive인 경우이다.

False Positive(거짓 양성) : 모델이 Positive로 예측하였으나 실제 값은 Negative인 경우이다.

True Negative(참 음성) : 모델이 Negative로 예측하였고, 실제 값도 Negative인 경우이다.



평가 지표

정확도(Accuracy)

정확도는 모델이 올바르게 예측한 케이스의 비율로, 전체적인 성능을 나타내는 지표로, 단순하고 직관적이다. 그러나 클래스 불균형 문제에서는 정확도만으로는 모델의 성능을 올바르게 판단하기가 어렵다.

Accuracy = TP+TN/TP+TN+FP+FN


정밀도(Precision)

정밀도는 모델이 Positive로 예측한 것 중 실제로 Positive인 것의 비율이다. 이러한 정밀도는 거짓 양성(FP)을 줄이는 것이 중요할 때 사용된다. 예를 들어, 스팸 메일 필터에서는 중요한 메일을 스팸으로 분류하는 것을 피해야 하므로 정밀도가 중요하다.

Precision = TP/TP+FP


재현율(Recall)

재현율은 실제 Positive 중에서 모델이 올바르게 Positive로 예측한 것의 비율이다. 재현율은 거짓 음성(FN)을 줄이는 것이 중요할 때 사용된다. 예를 들면, 암 진단에서는 실제 암 환자를 정상으로 판단하는 것을 피해야 하므로 재현율이 중요하다.

Recall = TP/TP+FN


특이도(Specificity)

특이도는 실제 Negative 중에서 모델이 올바르게 Negative로 예측한 것의 비율이다. 이러한 특이도는 거짓 양성(FP)에 더욱 집중하는 지표로, 거짓 양성의 비용이 높을 때 중요하게 사용된다.

Specificity = TN/TN+FP



Class Balance

클래스 밸런스는 머신러닝에서 중요한 고려사항이다. 이를 고려하지 않으면 모델은 다수 클래스를 더 잘 예측할 수 있는 경향이 있기 때문에, 미묘한 패턴이나 소수 클래스의 특성을 잡아내지 못할 수 있다. 결국 모델의 일반화 성능을 저하시킬 수 있다는 것이다. 여기에서 일반화 성능이 저하된다는 것은 해당 모델이 실제 산업에서 잘 적용이 안되어 예측이 틀릴 가능성이 높아진다는 것이다.


그렇기 때문에 소수 클래스가 있으면 어버 샘플링을 하거나, 다수 클래스를 언더샘플링한다. 또 다른 방법으로는 소수 클래스의 샘플에 더 높은 가중치를 부여하여 모델 학습에 더 큰 영향이 미치도록 할 수 있다. 그리고 오늘 소개한 평가지표로 올바르게 평가할 수 있도록 해야 한다. 마지막으로 클래스 불균형을 해결할 수 있는 방법으로는 앙상블 기법이 있다. 이에 대해서는 다음 편에서 소개하도록 하겠다.

keyword
매거진의 이전글분류(Classification)문제와 의사 결정 나무