Python&Django로 ‘비전공자’도 개발자로 초고속 성장!
#인공지능 

회귀의 오류 지표 알아보기

머신러닝을 사용한 회귀 문제에서 모델의 성능을 평가하기 위해 다양한 지표가 사용됩니다. 그 중에서도 MAE(Mean Absolute Error), MSE(Mean Squared Error), 그리고 RMSE(Root Mean Squared Error)는 가장 널리 사용되는 지표입니다.

2024-05-24 | 나융

회귀의 오류 지표

머신러닝을 사용한 회귀 문제에서 모델의 성능을 평가하기 위해 다양한 지표가 사용됩니다. 그 중에서도 MAE(Mean Absolute Error), MSE(Mean Squared Error), 그리고 RMSE(Root Mean Squared Error)는 가장 널리 사용되는 지표입니다. 이 세 가지 지표는 모두 예측값과 실제값 사이의 차이를 측정하지만, 그 계산 방식에는 중요한 차이가 있습니다. 이 차이는 특히 이상치(outlier)를 다루는 방식에서 두드러지게 나타납니다.

 

Mean Absolute Error, MAE

✅ MAE는 예측값과 실제값의 절대 차이를 평균한 것으로, 다음과 같은 수식으로 표현됩니다:

    $$ MAE = \frac{1}{n}\sum_{i=1}^{n} |y_i - \hat{y}_i| $$

여기서  y_i  i 번째 데이터 포인트의 실제값,  \hat{y}_i  i 번째 데이터 포인트의 예측값,  n 은 전체 데이터 포인트의 수를 나타냅니다.
MAE는 오차의 절대값을 평균하므로, 모든 오차를 동등하게 처리합니다. 즉, 작은 오차와 큰 오차가 동일한 가중치를 갖게 됩니다. 이는 MAE가 이상치에 상대적으로 덜 민감하다는 것을 의미합니다.

 

Mean Squared Error, MSE

✅ MSE는 예측값과 실제값의 차이를 제곱한 후 평균을 낸 것으로, 다음과 같은 수식으로 표현됩니다:

    $$ MSE = \frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$

MSE는 오차를 제곱하기 때문에, 큰 오차가 작은 오차보다 더 큰 영향을 미치게 됩니다. 이는 MSE가 이상치에 더 민감하게 반응한다는 것을 의미합니다.

 

Roote Mean Squared Error, RMSE

✅ RMSE는 MSE에 제곱근을 취한 것으로, 다음과 같이 계산됩니다:

    $$ RMSE = \sqrt{MSE} = \sqrt{\frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2} $$

RMSE는 MSE와 마찬가지로 이상치에 민감하게 반응하지만, 제곱근을 취하기 때문에 MSE보다는 오차의 크기가 작아집니다. 또한, RMSE는 MAE와 달리 오차의 단위와 동일한 단위를 가지므로 해석이 더 직관적일 수 있습니다.

 


지표의 의미 살펴보기

더 직관적으로 MAE와 MSE를 이해하기 위해 다음과 같은 예시를 살펴보겠습니다.

MAE는 실제값과 예측값 사이의 절대적인 거리들의 합과 같습니다.

 

MSE 는 오차의 제곱항(면적=거리x거리)을 지니기 때문에, 위 그림처럼 멀리 떨어진 예측값일 수록 다른 포인트보다 훨씬 더 큰 영향을 줍니다.

 

예시 문제로 이해하기

이 차이를 더 잘 이해하기 위해 다음과 같은 예시를 살펴보겠습니다. 실제값이  [1, 2, 3, 4, 5] 이고 모델  A 의 예측값이  [1, 2, 3, 4, 10] 이며, 모델  B 의 예측값이  [3, 3, 3, 3, 3] 이라고 가정해 봅시다.

모델  A 의 경우, MAE, MSE, 그리고 RMSE는 다음과 같이 계산됩니다:

 MAE_A = \frac{|1-1| + |2-2| + |3-3| + |4-4| + |5-10|}{5} = \frac{0 + 0 + 0 + 0 + 5}{5} = 1

 MSE_A = \frac{(1-1)^2 + (2-2)^2 + (3-3)^2 + (4-4)^2 + (5-10)^2}{5} = \frac{0^2 + 0^2 + 0^2 + 0^2 + 5^2}{5} = 5

 RMSE_A = \sqrt{MSE_A} = \sqrt{5} \approx 2.24

 

모델  B 의 경우, MAE, MSE, 그리고 RMSE는 다음과 같이 계산됩니다:

 MAE_B = \frac{|1-3| + |2-3| + |3-3| + |4-3| + |5-3|}{5} = \frac{2 + 1 + 0 + 1 + 2}{5} = 1.2

 MSE_B = \frac{(1-3)^2 + (2-3)^2 + (3-3)^2 + (4-3)^2 + (5-3)^2}{5} = \frac{2^2 + 1^2 + 0^2 + 1^2 + 2^2}{5} = 2

 RMSE_B = \sqrt{MSE_B} = \sqrt{2} \approx 1.41

 

이 예시에서 볼 수 있듯이, 모델  A 는 마지막 데이터 포인트(5와 10 사이의 차이)가 이상치로 작용하여 MSE와 RMSE가 MAE보다 크게 증가했습니다. 반면에 모델  B 는 모든 데이터 포인트에서 동일한 오차를 보이므로 MSE, RMSE와 MAE의 차이가 상대적으로 작습니다.

이는 MSE와 RMSE가 MAE보다 이상치에 더 민감하게 반응한다는 것을 보여줍니다. MSE와 RMSE는 큰 오차를 더 강조하므로, 이상치가 존재할 때 모델의 성능이 더 나쁘게 평가될 수 있습니다. 반면에 MAE는 모든 오차를 동등하게 처리하므로, 이상치의 영향을 상대적으로 적게 받습니다.

따라서 데이터에 이상치가 많을 것으로 예상되는 경우에는 MAE를 사용하는 것이 더 적절할 수 있습니다. 그러나 이상치에 더 큰 가중치를 두어야 하는 경우, 또는 큰 오차가 작은 오차보다 더 심각한 문제로 간주되어야 하는 경우에는 MSE나 RMSE를 사용하는 것이 더 바람직할 수 있습니다.

 

마무리하며

특성 MAE MSE RMSE
오차의 크기에 대한 민감도 덜 민감(모든 오차를 동등하게 처리) 더 민감(큰 오차에 더 큰 가중치 부여) 더 민감 (큰 오차에 더 큰 가중치 부여)
이상치에 대한 민감도 덜 민감 (이상치의 영향을 상대적으로 적게 받음) 더 민감 (이상치로 인해 값이 크게 증가할 수 있음) 더 민감 (이상치로 인해 값이 크게 증가할 수 있음)
오차의 단위와 해석 오차의 단위와 동일, 해석이 직관적임. 원래 데이터의 단위와 다름, 해석이 덜 직관적임. 오차의 단위와 동일, 해석이 직관적임.

 

결론적으로, MAE, MSE, 그리고 RMSE는 모두 회귀 모델의 성능을 평가하는 데 유용한 지표이지만, 데이터의 특성과 문제의 맥락에 따라 적절한 지표를 선택하는 것이 중요합니다. 이상치의 존재 여부와 이상치에 대한 민감도 요구사항을 고려하여 MAE, MSE, 또는 RMSE 중 더 적합한 지표를 사용해야 합니다.