회귀모델을 평가하는 평가지표
회귀모델은 그 모델이 잘 학습되어졌는지 확인 하기 위한 회귀모델의 평가지표들이 4가지 있다.
이를 하나씩 살펴보자.
MAE(Mean Absolute error)
n1∑i=1n∣yi−yi^∣
- 모델의 예측값과 실제값의 차이의 절대값의 평균
- 절대값을 취하기 때문에 가장 직관적으로 알 수 있는 지표이다.(해석에 용이하다)
- MSE보다 특이치에 robust(강하다)하다.
- 절대값을 취하기 때문에 모델이 Underperformance(실제보다 낮은값으로 예측)인지 Overperformance(실제보다 높은 값으로 예측)인지 알 수 없다.
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y, y_pred)
MSE(Mean Squared Error)
n1∑i=1n(yi−yi^)2
- 제곱을 하기 때문에 MAE와는 다르게 모델의 예측값과 실제값 차이의 면적의(제곱)합이다
- 제곱을 하기 때문에 특이치(outlier)에 민감하다.
from sklearn.metrics import mean_squared_error
mean_squared_error(y, y_pred)
RMSE(Root Mean Squared Error)
MSE
- MSE에 루트를 씌워 사용한다.
- RMSE를 사용하면 오류 지표를 실제값과 유사한 단위로 다시 변환하여 해석을 쉽게한다.
from sklearn.metrics import mean_squared_error
rmse = mse ** 0.5
R-squared(Coefficient of determination, 결정계수)
1−∑i=1n(yi−yiˉ)2∑i=1n(yi−yi^)2=1−SSTSSE=SSTSSR
- SSE(Sum of Squares
Error
, 관측치와 예측치 차이): ∑i=1n(yi−yi^)2
- SSR(Sum of Squares due to
Regression
, 예측치와 평균 차이): ∑i=1n(yi^−yiˉ)2
- SST(Sum of Squares
Total
, 관측치와 평균 차이): ∑i=1n(yi−yiˉ)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 블로그의 맨아래를 참고하면된다.