- 회귀 모델이 정확한 값을 예측하는 것은 어려움
- 오차 범위가 적을 수록, 예측 값이 실제 값에 가까울 수록 좋은 모델
- 예측 값과 실제 값의 차이(오차)로 모델 성능을 평가
1) MAE(Mean Absolute Error)
MAE=n1∑i=1n∣yi−y^i∣
# 모듈 불러오기
from sklearn.metrics import mean_absolute_error
# 성능 평가
print("MAE: ", mean_absolute_error(y_test, y_pred))
2) MSE(Mean Squared Error)
MSE=n1∑i=1n(yi−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=n1∑i=1n(yi−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=n1∑i=1n∣∣∣∣yiyi−y^i∣∣∣∣
- 분모가 작을수록 아주 작은 숫자가 나올 수 있음
사용 방법
# 모듈 불러오기
from sklearn.metrics import mean_absolute_percentage_error
# 성능 평가
print("MAPE: ", mean_absolute_percentage_error(y_test, y_pred))
5) R2-Score
R2=1−SSTSSE=1−∑i=1n(yi−yˉi)2∑i=1n(yi−y^i)2
- 전체 오차 중에서 회귀식이 잡아낸 오차 비율(일반적으로 0~1 사이)
- 오차의 비 또는 설명력이라고도 함
- R^2 = 1 이면 MSE = 0 이고, 모델이 데이터를 완벽하게 학습한 것
# 모듈 불러오기
from sklearn.metrics import r2_score
# 성능 평가
print("R2: ", r2_score(y_test, y_pred))