더 좋은 모델을 선택하기 위해 모델 평가 지표를 사용해서 성능을 평가한다. 어떤 모델이냐에 따라 평가 지표를 다르게 사용하게 되는데, 여기서는 회귀 모델에 대한 평가 지표를 이야기하고자 한다.
⭐ MAE(Mean Absolute Error)
MAE=n1i=0∑n∣Yi−Yi^∣
- Error에 절대값을 취하기 때문에 에러의 크기를 그대로 반영해서 해석이 용이함
(즉, 직관적이며 예측 변수와 단위가 같다.)
- 에러에 따른 손실이 선형적으로 올라갈 때 적합하다.
- MSE보다 이상치에 robust하다. (결국 이상치가 많을 때 사용하기 적합하다.)
📖Python
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test, y_pred)
⭐ MSE(Mean Squared Error)
MSE=n1i=0∑n(Yi−Yi^)2
- 지표 자체는 직관적이다.
- 예측 변수와 단위가 다르다.
- 에러를 제곱하기 때문에 이상치에 민감해서 이상치 판별에 용이하다.
- 에러를 제곱하기 때문에 1미만의 에러는 더 작아지고, 그 이상은 커지는 왜곡이 발생한다.
📖Python
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test, y_pred)
⭐ RMSE(Root Mean Squared Error)
RMSE=MSE
- MAE와 함께 가장 일반적으로 많이 쓰이는 회귀모델 성능분석지표이다.
- 지표 자체가 직관적이고, 예측 변수와 단위가 같다.
- 에러에 따라 손실이 기하 급수적으로 올라가는 상황에서 쓰기 적합하다.
📖Python
from sklearn.metrics import mean_squared_error
MSE = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(MSE)
rmse = MSE**0.5
⭐ R2 (결정계수, Coefficient of Deter mination)
- 상대적으로 얼마나 성능이 나오는지를 측정하는 지표
따라서, 위에 3가지 지표는 Error 값을 나타내므로 적을수록 성능이 좋은 모델이지만,
R2는 1에 가까운 큰 수일수록 좋은 모델이라고 할 수 있다.
📖Python
from sklearn.metrics import r2_score
r2 = r2_score(y_pred, y_test)
[참고]
SSE(Sum of Squares Error) : 관측치와 예측치의 차이
SSR(Sum of Squares due to Regression) : 예측치와 평균 차이
SSR=i=0∑n(Yi^−Yiˉ)2
SST(Sum of Squares Total) : 관측치와 평균 차이
SST=i=0∑n(Yi−Yiˉ)2=SSE+SSR