정리필요/AI

[개념] Regression model 평가 지표

kstar2 2021. 3. 17. 16:36

작성한 내용은 다른 곳들을 참고하여 작성되었다. 참고한 것들의 출처는 아래 링크와 같다.

1. 링크1 - partrita.github.io/posts/regression-error/

2. 링크2 - www.dataquest.io/blog/understanding-regression-error-metrics/

1. MAE란?

 

1.1 MAE 개념

Mean Absolute Error로 모델의 예측값의 차이를 모두 더한다는 개념으로 수식은 아래와 같다.

  • 절대값을 취하기 떄문에 가장 직관적으로 알 수 있는 지표이다. //기장 간단한 회귀 오류 메트릭스 여서
  • MSE보다 특이치에 robust하다 //robust는 특이치로 부터 영향을 크게 받지 않는 다는 의미
  • 절대값을 취하기 때문에 실제보다 낮은 값인지 실제보다 큰 값인지 알 수 없다

출처 - https://www.dataquest.io/blog/understanding-regression-error-metrics/

1.2 MAE 구현

#방법 1) function으로 구현하기
import numpy as np

def MAE(y_true, y_pred) :
	return np.mean(np.abs((y_true - y_pred)))

MAE(y_true, y_pred) //y_true는 실제 값, y_pred는 예측 값
#방법 2) sklearn.metrics에서 지원하는 method 사용하기
from sklearn.metrics import mean_absolute_error

mean_absolute_error(y_true, y_pred)

2. MSE란?

 

2.1 MSE 개념

Mean squared Error의 약자로 제곱을 하기 때문에 MAE와 다르게 모델의 예측값과 실제값 차이의 면적의 합이다.

이는 제곱을 하기 떄문에 특이치에 민감하다.

즉, 쉽게 말해 하나의 예측값이 실제값과 차이가 크면 MSE가 크게 증가하기 때문에 민감하다.

ps. 모델의 오류 측정 항목은 경쟁 모델의 오류 측정 항목과 비교할 수만 있다.

출처 - https://www.dataquest.io/blog/understanding-regression-error-metrics/

 

2.2 MSE 구현

#방법 1) function 구현하기
def MSE(y_true, y_pred):
	return np.mean(np.square((y_true - y_pred))) 

MSE(y_true, y_pred)
#방법 2) sklearn.metrics의 method사용하기
from sklearn.metrics import mean_squared_error

mean_squared_error(y_true, y_pred)

 


3. RMSE란?

 

3.1 RMSE 개념

root mean squared error의 약자로 MSE에 루트를 씌워 준 것이다. 이는 오류 지표를 실제 값과 유사한 단위로 다시 변환하여 해설을 쉽게 한다. 식은 아래와 같다.

3.2 RMSE 구현

#방법 1) 기존에 구현한 MSE function 사용하기
np.sqrt(MSE(y_true, y_pred))
#방법 2) sklearn.metrics의 method를 이용한 방법
from sklearn.metrics import mean_squarded_error

np.sqrt(mean_squarded_error(y_true, y_pred))

 

4. MAPE란?

 

4.1 MAPE 개념

mean absolute percentage error의 약자로 MAE를 퍼센트로 변환한 것이다. 이를 수식으로 나타내면 아래와 같다.

  • MAE와 마찬가지로 MSE보다 특이치에 robust하다.
  • MAE와 같은 단점(실제 값보다 낮은 값인지 높은 값인지 알 수 없는 것)
  • 모델에 대한 편향이 존재한다.
    • 이 단점에 대응하기 위해 MPE도 추가로 확인하는 것을 추천한다.
    • 실제 값이 0에서 사용하기 어렵다. // (y - y') / y 임으로 사용할 수 없다.

출처 - https://www.dataquest.io/blog/understanding-regression-error-metrics/

4.2 MAPE 구현

#방법 1) function으로 구현
def MAPE(y_true, y_pred):
	return np.mean(np.abs((y_true - y_pred) / y_true)) * 100

MAPE(y_true, y_pred)
#방법 2) sklearn.metrics의 method로 구현
from sklearn.metrics import mean_absolute_percentage_error

mean_absolute_percentage_error(y_true, y_pred)

5. MPE란?

 

5.1 MPE 개념

mean percentage error의 약자로 MAPE에서 절대값을 제외한 지표이다. 수식은 아래와 같다.

  • 과소평가하는지 과대 평가하는지 확인할 수 있어 유용하다.
  • MAE 또는 MSE 같은 절대 오차 측정 대신 MAPE 또는 MPE와 같은 상대 오차 측정

출처 - https://www.dataquest.io/blog/understanding-regression-error-metrics/

5.2 MPE 구현

#방법 1) function으로 구현
def MPE(y_ture, y_pred):
	return np.mean((y_true - y_pred) / y_true) * 100

MPE(y_true, y_pred)

ps. MPE는 따로 sklearn에서 구현된 것이 보이지 않는다.


6. 결론

약어 평가지표 Residual Operation? Robust to Outliers?
MAE Mean Absolute Error Absolute Value Yes
MSE Mean Squarded Error Square No
RMSE Root Mean Squared Error Square No
MAPE Mean Absolute Percentage Error Absolute Value Yes
MPE Mean Percentage Error N/A Yes

 

'정리필요 > AI' 카테고리의 다른 글

[개념] 잡다하게 정리  (0) 2021.03.20
[개념] classification model 성능평가지표  (0) 2021.03.18
[개념] Encoding이란?  (0) 2021.03.16