본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

평균 절대 오차(Mean Absolute Error, MAE)는 예측값과 실제값의 차이(오차)에 절댓값을 씌워 평균한 값으로, 회귀 모델의 예측 성능을 평가하는 지표이다.

평균 절대 오차는 오차의 부호를 없애기 위해 제곱 대신 절댓값을 쓴다. 그래서 모든 오차가 크기에 비례해 똑같이 반영되고, 큰 오차를 제곱으로 키우는 평균 제곱 오차(MSE)보다 이상치의 영향을 덜 받는다. 단위가 원래 데이터와 같아 "평균적으로 얼마만큼 빗나갔는가"로 바로 읽을 수 있다.

평균 절대 오차는 연속형 값을 예측하는 회귀 모델의 지표이다. 양성·음성을 맞히는 분류 모델의 평가에는 쓰지 않는다.

MAE = (1/n) × ∑ |yi − ŷi|

여기서

  • yi: 실제값
  • ŷi: 예측값
  • n: 샘플 수
  • 항상 0 이상이며, 0이면 모든 예측이 정확하다는 뜻이다. 작을수록 좋다.
  • 단위가 원래 데이터와 같다.
  • 오차를 제곱하지 않으므로 이상치에 덜 민감하다.
  • 같은 데이터에서 MAE 는 RMSE 보다 크지 않다(MAE ≤ RMSE). 두 값의 차이가 크면 일부 큰 오차가 섞여 있다는 뜻이다.
  • 절댓값 함수는 오차가 0인 점에서 미분할 수 없어, 손실 함수로 쓸 때는 MSE 보다 최적화가 까다롭다. 손실 함수로 쓸 때는 L1 손실이라고도 부른다.
  • 실제값: [3, 5, 2.5, 7]
  • 예측값: [2.5, 5, 4, 8]

절대 오차 = |3−2.5| + |5−5| + |2.5−4| + |7−8| = 0.5 + 0 + 1.5 + 1 = 3, MAE = 3 / 4 = 0.75

같은 자료의 RMSE 는 약 0.935 이다. 가장 큰 오차(1.5)가 제곱되면서 RMSE 가 더 커졌다.

회귀 평가 지표 비교

편집 원본 편집
지표 계산 단위 특징
MAE 절대 오차의 평균 원래 단위 이상치에 덜 민감, 해석이 쉽다
MSE 오차 제곱의 평균 원래 단위의 제곱 큰 오차에 큰 벌점, 손실 함수로 많이 쓴다
RMSE MSE 의 제곱근 원래 단위 큰 오차에 민감
MAPE 실제값 대비 절대 오차 비율의 평균(%) 백분율 규모가 다른 자료끼리 비교 가능, 실제값이 0이면 계산할 수 없다
R² 1 − (잔차 제곱합 / 총 제곱합) 단위 없음 모델이 설명하는 변동의 비율, 1에 가까울수록 좋다

분류 평가 지표와의 구분

편집 원본 편집

정밀도(Precision), 재현율(Recall), 정확도(Accuracy), F1 점수는 혼동 행렬의 TP·FP·FN·TN 으로 계산하는 분류 모델의 지표이다. 이진분류기를 평가할 때는 이것들과 ROC 곡선·AUC 를 쓴다.

MAE 는 예측값과 실제값의 수치 차이를 재므로 회귀 지표이다. 이진분류기의 평가 요소를 묻는데 MAE 가 섞여 있으면 그것이 성격이 다른 것이다.

구분 지표
회귀 MAE, MSE, RMSE, MAPE, R²
분류 정확도, 정밀도, 재현율(민감도), 특이도, F1 점수, AUC
import numpy as np
from sklearn.metrics import mean_absolute_error

y_true = np.array([3, 5, 2.5, 7])
y_pred = np.array([2.5, 5, 4, 8])

print(mean_absolute_error(y_true, y_pred))   # 0.75
print(np.mean(np.abs(y_true - y_pred)))      # 0.75
  • Willmott, C. J., & Matsuura, K. (2005). Advantages of the mean absolute error (MAE) over the root mean square error (RMSE) in assessing average model performance. Climate Research, 30.
  • Hyndman, R. J., & Athanasopoulos, G. (2018). Forecasting: Principles and Practice.