회귀 모델 평가 지표(Evaluation Metrics for Regression Models)

회귀 모델 평가 지표란?

Evaluation metrics are a measure of how good a model performs and how well it approximates the relationship
- towards data science

회귀 모델 평가 지표는 이 모델의 성능이 얼마나 좋은지, 모델에 사용된 특성과 타겟의 관계를 얼마나 잘 나타내는지 보여주는 값이다.

회귀 모델의 평가 지표에는 다음과 같은 것들이 있다.

  • MSE(Mean Squared Error, 평균 제곱 오차)
  • RMSE(Root MSE, 평균 제곱근 오차)
  • MAE(Mean Average Error, 평균 절대 오차)
  • $R^2$(R-squared, Coefficient of determination, 결정 계수)

MSE(Mean Squared Error, 평균 제곱 오차)

회귀 분석을 통해 얻은 예측 값과 실제 값의 차이(잔차)의 평균을 나타낸 것이다. ($y$ : 실제 값, $\hat{y}$ : 예측 값)

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

예측 값과 실제 값의 차이를 나타낸 것이므로 작으면 작을수록 좋다.

위 식에서 $(y - \hat{y})^2$를 SSE(Sum of Squares Error, 오차 제곱의 합)라고 하는데, 이는 데이터의 개수가 늘어나면 계속해서 오류의 값이 증가하는 문제가 있다. 이 문제를 해결하기 위해 평균으로 만든 것이 MSE이다.

MSE는 값 하나를 통해 모델의 성능을 파악할 수 있어 직관적이다.
동시에 MSE의 단점으로 아래와 같이 몇 가지가 있는데,

  1. 제곱을 했기 때문에 기존 값의 단위와 다른 단위를 갖는다(쉽게 말하면 값이 뻥튀기되었다).
  2. 이상치(Outlier)가 있는 경우 결과가 왜곡될 수 있다(1번과 동일 이유).
  3. 제곱을 하면 결과는 양수가 되기 때문에 예측 결과가 실제 값보다 높은 것인지, 낮은 것인지 알 수 없다.
  4. 값의 스케일에 의존적이다.$^*$$^1$

RMSE(Root MSE, 평균 제곱근 오차)

위에서 설명한 MSE의 값의 루트를 씌운 것이다.
MSE의 단점 중 제곱을 했기 때문에 발생한 단점을 보완하기 위해서 만들어졌다.

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

각각의 잔차에 루트를 씌우고서 더한 것이 아니라 전부 다 더한 값(MSE)에 루트를 씌웠기 때문에 제곱에 의한 왜곡이 여전히 존재하나, MSE보다는 덜하다.


MAE(Mean Average Error, 평균 절대 오차)

잔차에 절대값을 씌운 후 평균으로 만든 것이다.

$$MSE = \frac {1}{n}\sum_{i=1}^{n}|y_i - \hat{y_i}|$$

MSE나 RMSE와 마찬가지로 값 하나만 보고 모델의 성능을 직관적으로 파악할 수 있다.
또한 각각의 잔차에 단순히 절대값만 씌운 것의 평균이기에 기존 값의 단위를 그대로 유지하며, MSE에 비해 이상치에 의한 왜곡이 덜 하다는 장점이 있다.

하지만 절대값을 씌웠기 때문에 결과 값이 항상 양수이고, 이는 MSE와 마찬가지로 예측 결과가 실제보다 높은지 낮은지 알 수 없다.


$R^2$(R-squared, Coefficient of determination, 결정 계수)

$R^2$(이하 결정 계수)는 모델이 얼마나 예측을 잘 했는지를 0에서 1 사이로 나타낸 값이다. 1에 가까울수록 성능이 좋은 것이다.

$$1 - \frac{\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}}{\sum_{i=1}^{n}(y_{i} - \bar{y_{i}})^{2}} = 1 - \frac{SSE}{SST} = \frac {SSR}{SST}$$

조금 더 구체적으로 말하자면, 실제 값의 분산과 예측 값의 분산을 비교하여 예측이 얼마나 잘 맞았는지 보는 것이다. 만약 결정 계수의 값이 0.7이라면 이는 모델이 실제 값의 분산을 70% 설명한다는 의미이다.

위의 MSE, RMSE, MAE와 달리 결정 계수는 값의 단위가 원래 무엇이었든 0부터 1 사이의 값으로 표현하기에 스케일에 의존적이지 않다.
또한 값 하나로 모델의 성능을 알아볼 수 있어 직관적이다.

그러나 과적합(Overfitting) 문제에 약하다는 단점이 있다. 특성이 많아질수록, 즉 모델이 복잡해질수록 모델은 훈련 데이터는 잘 맞추지만 테스트는 잘 망치는, 즉 과적합되는 문제가 있다. 결정 계수는 그저 자신의 값을 보여줄 뿐, 모델이 과적합인지 아닌지는 말해주지 않는다.
이러한 과적합 문제를 보완하기 위해서 Adjusted R-squared(수정된 결정 계수)가 있다.

※ 참고
- SSE(Sum of Squares Error, 관측치와 예측치 차이): $\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}$
- SSR(Sum of Squares due to Regression, 예측치와 평균 차이): $\sum_{i=1}^{n}(\hat{y_{i}} - \bar{y_{i}})^{2}$
- SST(Sum of Squares Total, 관측치와 평균 차이): $\sum_{i=1}^{n}(y_{i} - \bar{y_{i}})^{2}$ , SSE + SSR

*1 스케일에 의존적이라는게 무슨 말?
예를 들어서 삼성전자와 애플의 주식 가격을 예측한다고 해보자.
여기서 한국 주식의 가격은 원화, 미국 주식의 가격은 달러이다(작성 시각 기준 삼성전자 70,200원, 애플 149.28달러).
이 둘에 대한 회귀 모델을 만들었고, MSE 값을 구했더니 둘 다 30이 나왔다고 해보자.
가격의 단위가 판이하게 다름에도 에러 값이 똑같이 나왔다.
그렇다고 해서 이 둘이 동등한 수준의 성능을 보여주는 것은 아니다.

이렇게 예측하고자 하는 값의 단위에 영향을 받는 것을 두고 스케일에 의존적이라고 한다.


<참고 자료>

+ Recent posts