본문 바로가기
Machine Learning

회귀 모델 성능 평가 방법

by 발코딩 2021. 5. 25.

Contents

  1. Characteristics
    1.1. Log & Root function의 특징
    1.2. Squared Error
  2. Regression Performance Indicators
    2.1. R²(R Square)
    2.2. MAE (Mean Absolute Error)
    2.3. MAPE (Mean Absolute Percentage Error)
    2.4. MSE (Mean Squared Error)
    2.5. RMSE (Root Mean Squared Error)
    2.6. MSLE (Mean Squared Log Error)
    2.7. RMSLE (Root Mean Squared Log Error)
  3. Conclusion

Annotation

  • $x$ : observed
  • $y$ : predicted
  • $n$ : 전체 샘플의 개수
  • $\bar{x}$ : mean of n number of $x$

Terminology

  • 오차(error) : 모집단에서의 |관측값-예측값|
  • 잔차(residual) : 표본집단에서의 |관측값-예측값|
  • scale 보정 : 값이 100 10000 100000 등 기준 크기가 다른 값이 같은 데이터셋 내에 존재할때 normalization을 해주는 것을 말한다.

1. Characteristics

회귀모델에서 사용되는 KPI(Key Performance Indicator)

1.1. Root & Log function의 특징

functions
  • Root or Log function을 이용하면 error 값의 크기에 크게 영향을 받지 않는다. ( $y << x$ )
  • outlier에 robust해진다.

1.2. Squared Error

Square Error에 기반한 방법은 error에 제곱을 하므로 outlier에 민감하다.

2. Regression Performance Indicators

2.1. R²(Square of Correlation Coefficient)

$$R^2=1-\frac{\sum_{i=1}^{n}(x_i-y_i)^2}{\sum_{i=1}^{n}(x_i-\bar{x})^2}$$

  • 1에 가까울 수록 오차가 적다.
  • (예측값과 관측값 / 관측값과 관측값의 평균)의 오차율을 본다.
  • scale 보정이 있다.

2.2. MAE (Mean Absolute Error)

$$MAE=\frac{\sum_{i=1}^{n} \lvert y_i-x_i \rvert}{n}$$

  • 단순히 예측값 y와 관측값 x의 차이를 비교한 것의 평균
  • 에러 그대로를 보여준다.
    • Scale 보정을 해주지 않는다.
      • 똑같이 10%의 오차지만 100배의 차이가 남
        observed - predicted = error
        110 - 100 = 10
        11000 - 10000 = 1000
    • 데이터의 normalization 필요

2.3. MAPE (Mean Absolute Percentage Error)

$$MAPE=\frac{1}{n}\sum_{i=1}^{n} \lvert \frac{y_i-x_i}{x_i} \rvert$$

  • 오차를 관측값으로 나누어 scale에 대한 보정이 들어간다.
    • 예) x = 10, y = 20 인 경우
      Absolute Error = 10
      Squared Error = 100
      Percentage Error = 1

2.4. MSE (Mean Squared Error)

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

  • 예측값 y와 관측값 x의 차이에 제곱을 한 것의 평균
  • error에 제곱을 하기 때문에 error가 1을 기준으로 작은경우 더 작아지고 크면 더 커진다.
    • outlier에 영향을 쉽게 받는다.
    • outlier가 중요한 데이터의 경우 사용하는 것이 좋다.
    • Robustness ↓

2.5. RMSE (Root Mean Squared Error)

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

  • MSE에 루트를 취한 것
  • MSE보다는 outlier에 의한 영향을 감소시켜준다.
    • 여전히 outlier에 영향을 쉽게 받는다.

2.6. MSLE (Mean Squared Log Error)

$$MSLE=\frac{1}{n} \sum_{i=0}^{n}(\log(x_i + 1) - \log(y_i + 1))^2$$

  • Squared error에 로그를 취한 것

    log에서 진수(argument)가 1이하면 음수가 되므로 이를 보정하고자 +1을 한다.

  • log의 영향으로 outlier에 robust해진다.
  • 관측값과 예측값의 비율을 따지게 되므로 scale의 보정이 일어난다.
    • log의 성질

      $$log(x_i+1)-log(y_i+1)=log(\frac{x_i+1}{y_i+1})$$

      • log의 성질에 의해 |관측값-예측값|이 같더라도,
        관측값>예측값인 경우에 더 큰 값을 갖는다.

      • Example
        두 경우 |관측값-예측값|=5로 동일
        관측값 = 4, 예측값 = 9 -> error = 0.1597
        관측값 = 9, 예측값 = 4 -> error = 0.5118

2.7. RMSLE (Root Mean Squared Log Error)

$$RMSLE=\sqrt{\frac{1}{n} \sum_{i=0}^{n}(\log(x_i + 1) - \log(y_i + 1))^2}$$

  • MSLE에 루트를 취한 것
  • root*log function의 특성에 의해 error율이 9이하인 경우에는 MSLE보다 값이 크게 나오고,
    그보다 큰 경우에는 적게나온다.

3. Conclusion

선형모델 예시 데이터

regression

비교 테이블

사용 데이터에 따라서 결과의 차이가 존재할 수 있음

methodsnormaloutlierscaleoutlier+scale
0.950440.699960.992120.99209
MAE0.968001.760008484.640008925.44000
MAPE0.074810.120480.034570.12048
MSE2.4816015.600001604160404.560001610760412.56000
RMSE1.575313.9496840051.9712940134.27977
MSLE0.011170.057560.003930.06100
RMSLE0.105710.239920.062700.24699

Comments