MSE
회귀 모델의 주요 손실함수
예측값과 실제값의 차이인 오차들의 제곱 평균으로 정의한다.
제곱을 하기 때문에 특이치(아웃라이어)에 민감하다.
MAE
실제값과 예측값의 차이인 오차들의 절댓값 평균
MSE보다는 특이치에 덜 민감하다.
RMSE
MSE에 root를 씌운 값
오류 지표를 실제 값과 유사한 단위로 다시 변환하기에 해석이 다소 용이해진다.
RMSLE
오차를 구할 때 RMSE와는 log를 추가하는 점이 다르다.
RMSLE의 특징
1. 아웃라이어에 덜 민감하다. (robust) : 아웃라이어가 있더라도 값의 변동폭이 크지 않다.
2. 상대적 Error를 측정해준다.
값의 절대적 크기가 커지면 RMSE의 값도 커지지만, RMSLE는 상대적 크기가 동일하다면 RMSLE의 값도 동일하다.
예측값 = 100, 실제값 = 90일 때, RMSLE = 0.1053, RMSE = 10
예측값 = 10,000, 실제값 = 9,000일 때, RMSLE = 0.1053, RMSE = 1,000
3. Under Estimation에 큰 패널티를 부여
RMSLE 그래프를 보면 예측값이 실제값보다 작을 경우 더 큰 패널티를 부여한다.
택시를 타고 이동한다고 가정했을 때
예측 소요 시간이 30분이라고 했으나 실제로 40분이 걸린다면 (예측값 < 실제값)
소비자가 더 분노하는 것과 비슷한 개념이다.
R-Squared (결정계수)
분산기반 예측 성능 평가
다른 MAE, MSE 등과 같은 지표들는 데이터의 scale에 따라 값이 다르지만
R2은 상대적인 성능이 어느정도인지 직관적으로 판단할 수 있다.
정리
평가 지표 | ||
0에 가까울 수록 좋은 성능 | MSE, MAE, RMSE, RMSLE | |
1에 가까울 수록 좋은 성능 | R-Squared |
절대적으로 좋은 평가지표는 없으니 도메인 전문가와 상의를 하거나
또는 경진대회라면 해당 대회가 요구하는 평가방식에 맞출 필요가 있다.
데이터 불러오기
https://steadiness-193.tistory.com/269
위 포스팅에서 전처리 완료한 데이터를 이용한다.
모델은 XGBRegressor를 사용한다.
R2 값은 1에 가깝고 나머지 평가 지표는 0에 가까워 학습과 예측이 잘 된 모델이라고 평가할 수 있다.
단, RMSE와 RMSLE는 하나의 함수가 없기 때문에
mean_squared_error와 mean_squared_log_error에 np.sqrt로 루트를 씌워줘야 한다.
참조
rk1993.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%84%B1%EB%8A%A5-%ED%8F%89%EA%B0%80-%EC%A7%80%ED%91%9C-%ED%9A%8C%EA%B7%80-%EB%AA%A8%EB%8D%B8-%EB%B6%84%EB%A5%98-%EB%AA%A8%EB%8D%B8
bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-17-%ED%9A%8C%EA%B7%80-%ED%8F%89%EA%B0%80-%EC%A7%80%ED%91%9C
medium.com/analytics-vidhya/root-mean-square-log-error-rmse-vs-rmlse-935c6cc1802a
mjgim.me/2018/02/28/regression.html
'Machine Learning > 회귀(Regression)' 카테고리의 다른 글
Regression - RandomForestRegressor, XGBRegressor, LGBMRegressor (0) | 2020.09.14 |
---|---|
Regression - SVR (0) | 2020.09.14 |
Regression - Multi Layer Perceptron Regressor (0) | 2020.09.14 |
Regression - Ridge (L2) (0) | 2020.09.14 |
Regression - Lasso (L1) (0) | 2020.09.14 |