회귀 모델(Regression)의 성능 평가

예린·2024년 3월 30일

머신러닝

목록 보기
2/7
  • 회귀 모델이 정확한 값을 예측하는 것은 어려움
  • 오차 범위가 적을 수록, 예측 값이 실제 값에 가까울 수록 좋은 모델
  • 예측 값과 실제 값의 차이(오차)로 모델 성능을 평가

1) MAE(Mean Absolute Error)

MAE=1ni=1nyiy^i\large MAE=\frac{1}{n}\sum_{i=1}^{n}|y_{i}-\hat{y}_{i}|

# 모듈 불러오기
from sklearn.metrics import mean_absolute_error

# 성능 평가
print("MAE: ", mean_absolute_error(y_test, y_pred))

2) MSE(Mean Squared Error)

MSE=1ni=1n(yiy^i)2\large MSE=\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2

# 모듈 불러오기
from sklearn.metrics import mean_squared_error

# 성능 평가
print("MSE: ", mean_squared_error(y_test, y_pred))

3) RMSE(Root Mean Squared Error)

RMSE=1ni=1n(yiy^i)2\large RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2}

# 모듈 불러오기
# RMSE는 메소드가 없음
from sklearn.metrics import mean_squared_error

# 성능 평가
print("RMSE: ", mean_squared_error(y_test, y_pred) ** 0.5)
print("RMSE: ", mean_squared_error(y_test, y_pred, squared=False))

4) MAPE(Mean Absolute Percentage Error)

MAPE=1ni=1nyiy^iyi\large MAPE=\frac{1}{n}\sum_{i=1}^{n}\left |\frac{y_{i}-\hat{y}_{i}}{y_{i}}\right |

  • 분모가 작을수록 아주 작은 숫자가 나올 수 있음

사용 방법

# 모듈 불러오기
from sklearn.metrics import mean_absolute_percentage_error

# 성능 평가
print("MAPE: ", mean_absolute_percentage_error(y_test, y_pred))

5) R2-Score

R2=1SSESST=1i=1n(yiy^i)2i=1n(yiyˉi)2\large R^2=1-\frac{SSE}{SST}=1-\frac{\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2}{\sum_{i=1}^{n}(y_{i}-\bar{y}_{i})^2}

  • 전체 오차 중에서 회귀식이 잡아낸 오차 비율(일반적으로 0~1 사이)
  • 오차의 비 또는 설명력이라고도 함
  • R^2 = 1 이면 MSE = 0 이고, 모델이 데이터를 완벽하게 학습한 것
# 모듈 불러오기
from sklearn.metrics import r2_score

# 성능 평가
print("R2: ", r2_score(y_test, y_pred))

0개의 댓글