Data Analysis/Python

예측 오차를 평가하는 지표

뉴욕킴 2024. 10. 27. 16:15

1. MAE (Mean Absolute Error, 평균 절대 오차)

mae = mean_absolute_error(actual, predicted)
# = Σ|실제값 - 예측값| / n

 

  • 실제값과 예측값의 차이의 절대값의 평균
  • 직관적으로 이해하기 쉬움 (예: MAE가 2라면 평균적으로 2명 정도 차이난다는 의미)
  • 원래 단위(이 경우 플레이어 수)로 표현됨

2. MSE (Mean Squared Error, 평균 제곱 오차)

mse = mean_squared_error(actual, predicted)
# = Σ(실제값 - 예측값)² / n

 

  • 실제값과 예측값의 차이의 제곱의 평균
  • 큰 오차에 더 큰 가중치를 둠 (제곱 때문에)
  • 원래 단위의 제곱으로 표현됨 (직관적 해석이 어려움)

 

3. RMSE (Root Mean Squared Error, 평균 제곱근 오차)

rmse = np.sqrt(mse)
# = √(Σ(실제값 - 예측값)² / n)

 

  • MSE의 제곱근
  • MSE를 원래 단위로 변환한 것
  • MAE와 마찬가지로 원래 단위로 표현됨
  • 큰 오차에 더 민감

 

예시

actual = [10, 20, 30, 40, 50]
predicted = [12, 18, 31, 37, 49]

차이 = [2, -2, 1, -3, -1]

MAE = (|2| + |-2| + |1| + |-3| + |-1|) / 5 = 1.8
MSE = (4 + 4 + 1 + 9 + 1) / 5 = 3.8
RMSE = √3.8 ≈ 1.95

 

 

 

각각의 특징:

  • MAE: 모든 오차를 동일하게 취급
  • MSE: 큰 오차에 더 큰 페널티 (제곱 때문에)
  • RMSE: MSE를 원래 단위로 변환, 큰 오차에 민감

선택 기준:

  • MAE: 오차의 절대적 크기가 중요할 때
  • MSE: 큰 오차를 특히 피하고 싶을 때
  • RMSE: MSE의 의미를 원래 단위로 해석하고 싶을 때

플레이어 수 예측의 경우, MAE가 가장 직관적일 수 있습니다 (평균적으로 몇 명 정도 차이나는지 바로 알 수 있기 때문)