1. MAE(Mean Absolute Error)
MAE=n1∑i=1n∣yi−y^i∣
- 실제값과 예측값의 차이의 절댓값 평균
- 특이값이 많을 때 주로 사용
- 값이 낮을 수록 좋음
장점
- 단위가 종속변수와 동일해 직관적임
- 모든 오차를 동일하게 고려해 해석이 간단
- 이상치의 영향을 상대적으로 덜 받음
단점
- 모델이 실제값보다 낮게 예측한지, 높게 예측한지 알기 어려움 (절댓값을 취하므로)
- 스케일 의존적(scale dependency) = 모델마다 에러 크기가 동일해도 에러율은 동일하지 않음
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
2. MSE (Mean Squared Error)
MSE=n1∑i=1n(yi−y^i)2
- 실제값과 예측값의 차이의 제곱 평균
- 큰 오차에 더 큰 패널티 부여
- 값이 낮을수록 좋음
장점
- 큰 오차에 민감하게 반응해 큰 오차를 줄이는 데 유용
단점
- 단위가 제곱된 형태라 실제 값과 다를 수 있음
- 이상치의 영향을 많이 받음 (제곱을 취하므로)
- 모델이 실제값보다 낮게 예측하는지, 높게 예측하는지 알기 어려움
- 스케일 의존적
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
3. RMSE (Root Mean Squared Error)
RMSE=n1∑i=1n(yi−y^i)2
- 실제값과 예측값의 차이의 제곱 평균(=MSE)에 제곱근을 취한 값
- MSE의 장점을 가지면서 MSE의 단위 문제를 해결
- 값이 낮을수록 좋음
장점
- 큰 오차에 민감하게 반응함
- 실제 값과 같은 단위 유지해 해석이 용이
- MSE에 비해 이상치로부터 생기는 값의 왜곡이 덜함 (제곱근을 취하므로)
단점
- 모델이 실제값보다 낮게 예측하는지, 높게 예측하는지 알기 어려움
- 스케일 의존적
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
4. MAPE (Mean Absolute Percentage Error)
MAPE=n1∑i=1n∣∣∣∣yiyi−y^i∣∣∣∣×100%
- MAE를 비율, 퍼센트로 표현하여 스케인 의존적 에러의 문제점을 개선
- 값이 낮을수록 좋음
장점
- 직관적임
- 데이터 스케일에 영향 받지 않음
- 다른 모델과 에러율 비교가 쉬움
단점
- 모델이 실제값보다 낮게 예측하는지, 높게 예측하는지 알기 어려움
- 실제 정답이 1보다 작을 경우, 무한대로 발산할 수 있음
from sklearn.metrics import mean_absolute_percentage_error
mean_absolute_percentage_error(y_true, y_pred)
5. R2 Score (= 결정계수)
R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2
- 독립변수가 종속변수를 얼마나 잘 설명해주는지 나타내는 지표
- 0~1의 값을 가지며, 1에 가까울수록 설명력이 높음
- 비교적 해석이 쉽고 다른 모델과 비교할 때 유용함
- 독립변수가 2개 이상인 경우, 조정된 결정계수를 사용해야함
- R2 Score <= 0: 모델 활용 불가
- 0 < R2 Score < 1 : 1에 가까울 수록 좋은 모델
- R2 Score = 1 : 가장 좋은 모델
from sklearn.metrics import r2_score
r2 = r2_score(y_true, y_pred)
Outro
더 읽어볼 것
참고 자료