본문 바로가기
Dev/python

아무도 궁금해하지 않았지만 설명하는 회귀모델 평가지표들

by 혜옹쓰 2021. 10. 27.

이전 포스팅에 이어지는 글!


앞선 글에서, 머신러닝 모델의 성능을 ‘RMSE’ 라는 기준으로 정렬했었습니다! 그때는 RMSE에 대해 간단히 설명하고 넘어갔는데, 이게 도대체 뭔지, 다른 기준들도 있는데 왜 이걸로 기준을 잡았는지 조금 더 설명하고 싶어서 돌아왔어요!ㅎㅎ..아무도 궁금해하지 않으셨겠지만..그냥 제가 설명하고싶었어요…


1. MAE

MAE는 Mean Absolute Error의 약자로, 평균 절대 오차를 의미합니다!

악필은 조심스럽게 무시해주세요..

이름의 의미 그대로, 모든 절대오차를 더한 뒤 개수로 나눠 평균을 구한 값입니다. 직관적으로 실제값과 예측값의 오차를 보여주어 예측변수와 단위가 같다는 장점이 있습니다! 여기서 예측변수와 단위가 같다는 의미는, 만약 저희가 한 팀의 득점에 대해 예측했을 때, MAE의 값이 0.4가 나왔다면 0.4골만큼의 오차가 있다는 것으로 해석할 수 있다는 뜻이에요!

하지만 절댓값의 한가 있죠, 바로 이 오차가 양의 값인지 음의 값인지를 알 수 없다는 것입니다ㅜㅜ앞선 예시를 다시 가져온다면, 0.4골 만큼의 오차가 있을 때 0.4골만큼 크게 예측되었는지, 적게 예측되었는지를 알 수 없어요.

2. MSE

MSE는 Mean Square Error의 약자로, 평균 제곱 오차를 의미합니다.

역시나 이름 그대로! 모든 실제값과 예측값의 차이를 제곱하여 더한 후 평균을 구한 값입니다. 계산이 쉽고 수학적 분석이 쉽다는 장점이 있어요! 하지만 MAE와 다르게 예측변수와 단위가 다르고, 오차값이 크게 나오는 경우 속도가 느려질 수 있다는 단점이 있어요. 게다가 오차가 1보다 작다면 점점 더 작아지고, 1보다 크면 점점 더 커진다는 단점, 이상치에 민감하다는 것도 있죠! 거듭제곱의 특성상 어쩔 수 없는 부분이긴 해요 ;(

이때, 이 MSE의 한계를 보완하기 위해 개발된 친구가 RMSE입니다!

3. RMSE

RMSE는 Root Mean Square Error의 약자로, 평균 제곱근 오차를 의미합니다.

MSE에서 제곱근만을 추가한 친구에요! 제곱근을 왜 추가했냐면, 앞서 MSE의 단점으로 꼽았던 이상치에 민감하다, 오차값이 크게 나오는 경우 값이 왜곡될 수 있다는 점을 보완하기 위해서에요.

자 그럼, MSE와 RMSE를 함께 볼까요? 간단한 예를 들어볼게요!

실제값으로 1, 0, 3, 2, 4 가 나오고, 예측값으로 0.9, 0.3, 19, 2.4, 3.7 이 나온 데이터 셋이 있다고 해볼게요. 3번째 데이터를 보면 갑자기 값이 19로 뛰며 이상치가 생겼는데 이 이상치가 있을 때 MSE와 RMSE는 어떻게 대처하는 지 확인해 보겠습니다!

와 진짜 하나도 안어렵다 와 진짜 너무 재밌다

이 데이터 셋에 대해 33.87이라는 평균 제곱 오차값이 나왔어요. 하지만 저희는 딱 하나의 예측값, 19라는 값을 제외하고 모두 5이하의 값을 가지고 있는데, 오차라고 말하기엔 너무 큰 값이 나와버렸죠? 그럼 RMSE 값을 구해봐요!

반올림…피자샵

평균 제곱근 오차값으로는 약 5.82가 나왔네요! 아직도 조금 크긴 하지만, 그래도 오차값이 데이터의 근처까지 온게 보이시죠? 이렇게 이상치를 일정 부분 방어할 수 있기 때문에 해설이 용이해질 수 있어요.

4. MAPE

MAPE는 Mean Absolute Percentage Error의 약자로, 평균 절대비 오차를 의미합니다!

절댓값을 모두 더해 전체 표본의 갯수로 나누는 MAE와 다르게, 예측값에서 실제값을 뺀 오차를 예측값으로 나눠 절댓값을 더한 후 n분의 100을 곱해줍니다! 수식이 조금은 복잡해졌죠? 그렇지만 앞의 세가지 지표들과 다르게 백분율로 나타나기 때문에 비교하기가 용이하다는 장점이 있어요. 반면, 절댓값을 사용하기 때문에 역시나 오차가 양의 값인지 음의 값인지 알 수가 없죠. 여기에다, 예측값으로 나눠주는 과정을 거치기 때문에 예측값이 0이 나온 경우 계산이 아예 불가능하다는 한계도 있습니다!

5. MPE

MPE는 Mean Percentage Error의 약자로, 평균 비율오차를 의미합니다!

MAPE에서 절댓값을 의미하는 Absolute만 빠진 것과 같이, 절댓값을 제외하면 같은 수식을 가지고 있습니다. 고로, MAPE나 MAE의 한계였던 오차의 양/음의 값을 알 수 있다는 장점이 있어요! 하지만 지표 자체는 직관적이지가 않고, 예측 변수와 단위가 다르다는 단점이 있습니다.

 

이렇게 다양한 평가 지표들이 있지만, 저는 큰 이상치에 예민하다는 단점을 보완하고 MSE의 장점을 동시에 가지고 있는 RMSE를 모델을 평가하는 첫번째 지표로 사용하고 있습니다!

갑자기 분위기 수학시간처럼 되어버려서 여러분들의 거부감을 불러일으킨건 아닐지 약간 걱정인듯 걱정아닌 걱정같은 게 생겨버렸지만..생각보다 어렵지 않아요! 어차피 계산은 컴퓨터가 해줄테니까요! 다양한 지표로 모델을 평가해서, 더 좋은 모델을 만들어 정확한 예측을 할 수 있도록 앞으로도 더 연구할게요! 그럼 아디오스!