😏희귀 평가지표

회귀 모델을 훈련해 최적의 회귀계수를 구할수 있습니다. 최적 회귀계수를 구하려면 예측값과 실젯값의 차이, 즉 오차를 최소화해야 합니다. 오차가 작다는 말은 주어진 데이터에 회귀 모델이 잘 들어맞는다는 뜻입니다.

회귀 평가지표 값이 작을수록 모델 성능이 좋습니다.

  • MAE(Mean Absolute Error) : 평균 절대 오차

  • MSE(Mean Squared Error) : 평균 제곱 오차

  • RMSE (Root Mean Squared Error ) : 평균 제곱근 오차

  • MSLE (Mean Squared Log Error) : MSE에서 타깃값에 로그를 취한 값

  • RMSLE (Root Mean Squared Log Error) : MSLE에 제곱근을 취한 값

  • R2 : 결정계수

예제

사이킷런의 metrics 라이브러리를 활용해 회귀 평가 지표값을 구하기

import numpy as np
# MAE, MSE, MSLE, R2 임포트
from sklearn.metrics import mean_absolute_error, mean_squared_error, mean_squared_log_error, r2_score

true = np.array([1, 2, 3, 2, 3, 5, 4, 6, 5, 6, 7, 8, 8]) # 실제값
preds = np.array([1, 1, 2, 2, 3, 4, 4, 5, 5, 7, 7, 6, 8]) # 예측값

MAE = mean_absolute_error(true, preds)
MSE = mean_squared_error(true, preds)
RMSE = np.sqrt(MSE)
MSLE = mean_squared_log_error(true, preds)
RMSLE = np.sqrt(mean_squared_log_error(true, preds))
R2 = r2_score(true, preds)

# 출력
print(f'MAE:\t {MAE:.4f}')
print(f'MSE:\t {MSE:.4f}')
print(f'RMSE:\t {RMSE:.4f}')
print(f'MSLE:\t {MSLE:.4f}')
print(f'RMSLE:\t {RMSLE:.4f}')
print(f'R2:\t {R2:.4f}')

==> 상관계수