회귀 모델의 평가 지표

sy_healing·2022년 4월 28일
0

머신러닝

목록 보기
6/16

더 좋은 모델을 선택하기 위해 모델 평가 지표를 사용해서 성능을 평가한다. 어떤 모델이냐에 따라 평가 지표를 다르게 사용하게 되는데, 여기서는 회귀 모델에 대한 평가 지표를 이야기하고자 한다.


MAE(Mean Absolute Error)

MAE=1ni=0nYiYi^MAE= \frac{1}{n} \displaystyle\sum_{i=0}^{n}{\vert Y_i-\hat{Y_i} \vert}\\

  • Error에 절대값을 취하기 때문에 에러의 크기를 그대로 반영해서 해석이 용이함
    (즉, 직관적이며 예측 변수와 단위가 같다.)
  • 에러에 따른 손실이 선형적으로 올라갈 때 적합하다.
  • MSE보다 이상치에 robust하다. (결국 이상치가 많을 때 사용하기 적합하다.)

📖Python

from sklearn.metrics import mean_absolute_error

mean_absolute_error(y_test, y_pred)

MSE(Mean Squared Error)

MSE=1ni=0n(YiYi^)2MSE= \frac{1}{n} \displaystyle\sum_{i=0}^{n}{(Y_i-\hat{Y_i})^2}\\

  • 지표 자체는 직관적이다.
  • 예측 변수와 단위가 다르다.
  • 에러를 제곱하기 때문에 이상치에 민감해서 이상치 판별에 용이하다.
  • 에러를 제곱하기 때문에 1미만의 에러는 더 작아지고, 그 이상은 커지는 왜곡이 발생한다.

📖Python

from sklearn.metrics import mean_squared_error 

mean_squared_error(y_test, y_pred)

RMSE(Root Mean Squared Error)

RMSE=MSERMSE = \sqrt 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)

R2=i=0n(YiYi^)2i=0n(YiYiˉ)2=1SSESST=SSRSSTR^2=\frac{\displaystyle\sum_{i=0}^{n}{(Y_i-\hat{Y_i})^2}}{\displaystyle\sum_{i=0}^{n}{(Y_i-\bar{Y_i})^2}}=1- \frac{SSE}{SST} =\frac{SSR}{SST}

  • 상대적으로 얼마나 성능이 나오는지를 측정하는 지표
    따라서, 위에 3가지 지표는 Error 값을 나타내므로 적을수록 성능이 좋은 모델이지만,
    R2는 1에 가까운 큰 수일수록 좋은 모델이라고 할 수 있다.

📖Python

from sklearn.metrics import r2_score 

r2 = r2_score(y_pred, y_test)

[참고]
SSE(Sum of Squares Error) : 관측치와 예측치의 차이

  • RSS(SSE)=i=0n(YiYi^)2RSS(SSE)= \displaystyle\sum_{i=0}^{n}{(Y_i-\hat{Y_i})^2}

SSR(Sum of Squares due to Regression) : 예측치와 평균 차이

  • SSR=i=0n(Yi^Yiˉ)2SSR= \displaystyle\sum_{i=0}^{n}{(\hat{Y_i}-\bar{Y_i})^2}

SST(Sum of Squares Total) : 관측치와 평균 차이

  • SST=i=0n(YiYiˉ)2=SSE+SSRSST= \displaystyle\sum_{i=0}^{n}{(Y_i-\bar{Y_i})^2}=SSE+SSR

0개의 댓글