회귀모델 평가지표(evaluation metrics)

생각하는 마리오네트·2021년 6월 13일
0

머신러닝

목록 보기
3/9
post-custom-banner

회귀모델을 평가하는 평가지표

회귀모델은 그 모델이 잘 학습되어졌는지 확인 하기 위한 회귀모델의 평가지표들이 4가지 있다.
이를 하나씩 살펴보자.

MAE(Mean Absolute error)

1ni=1nyiyi^\frac{1}{n}\sum_{i=1}^{n}\left | y_{i} - \hat{y_{i}} \right |

  • 모델의 예측값과 실제값의 차이의 절대값의 평균
  • 절대값을 취하기 때문에 가장 직관적으로 알 수 있는 지표이다.(해석에 용이하다)
  • MSE보다 특이치에 robust(강하다)하다.
  • 절대값을 취하기 때문에 모델이 Underperformance(실제보다 낮은값으로 예측)인지 Overperformance(실제보다 높은 값으로 예측)인지 알 수 없다.
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y, y_pred)

MSE(Mean Squared Error)

1ni=1n(yiyi^)2\frac{1}{n}\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}

  • 제곱을 하기 때문에 MAE와는 다르게 모델의 예측값과 실제값 차이의 면적의(제곱)합이다
  • 제곱을 하기 때문에 특이치(outlier)에 민감하다.
from sklearn.metrics import mean_squared_error
mean_squared_error(y, y_pred)

RMSE(Root Mean Squared Error)

MSE\sqrt{MSE}

  • MSE에 루트를 씌워 사용한다.
  • RMSE를 사용하면 오류 지표를 실제값과 유사한 단위로 다시 변환하여 해석을 쉽게한다.
from sklearn.metrics import mean_squared_error
rmse = mse ** 0.5

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

1i=1n(yiyi^)2i=1n(yiyiˉ)2=1SSESST=SSRSST1 - \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}

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

R-squared는 현재 사용하고 있는 x변수가 y변수의 분산을 얼마나 줄였는가 입니다.
단순히 y평균값 모델(기준모델)을 사용했을때 대비 우리가 가진 x변수를 사용함으로서 얻는 성능 향상의 정도이다.

즉, R-squared 값이 1에 가까우면 데이터를 잘 설명하는 모델이고 0에 가까울수록 설명을 못하는 모델이라고 생각할 수 있다.

from sklearn.metrics import r2_score
 r2 = r2_score(y, y_pred)

R-squared는 https://velog.io/@ljs7463/%EB%8B%A8%EC%88%9C%EC%84%A0%ED%98%95%ED%9A%8C%EA%B7%80Simple-Regression 블로그의 맨아래를 참고하면된다.

profile
문제를해결하는도구로서의"데이터"
post-custom-banner

0개의 댓글