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가 가장 직관적일 수 있습니다 (평균적으로 몇 명 정도 차이나는지 바로 알 수 있기 때문)