Regression Metrics / Regression Loss Function
회귀 타입에 사용되는 손실 함수는 대표적으로 평균 오차 계산법이 있음
평균 오차를 계산하는 방식(공식)에 따라 MAE, MSE, RMSE 등으로 구분
MAE (Mean Absolute Error, 평균 절대 오차)
L1 Loss로도 불린다.
예측한 값과 실제 값의 차이에 절대값을 취해 모두 더해주고 나서 계산한 샘플 갯수(n)으로 나눠서 구한다.
MAE의 스케일(scale)은 예측 대상인 타켓 변수와 같은 스케일이기 때문에 값이 내포하는 의미를 직관적으로 이해하기에 좋다.
- 모델의 예측값과 실제값의 차이의 절대값의 평균
- 예측 결과와 정답 결과가 떨어진 정도의 절대값을 취하기 때문에 가장 직관적으로 알 수 있는 지표.
- 절대값을 취하기 때문에 모델이 Under performance(실제보다 낮은 값으로 예측, 오차가 음수)인지 Over performance(실제보다 높은 값으로 예측, 오차가 양수)인지 알 수 없다.
장점
- 전체 데이터의 학습된 정도를 쉽게 파악할 수 있다.
단점
- 어떤 식으로 오차가 발생했거나 음수인지 양수인지 알 수 없다
- 최적값에 가까워졌다고 하더라도 이동거리가 일정하기 때문에 최적값에 수렴하기 어렵다
MAPE (Mean Absolute Percentage Error)
참고: https://pseudo-lab.github.io/Tutorial-Book/chapters/time-series/Ch1-Time-Series.html
실제값과 예측값 사이의 차이를 실제값으로 나눠줌으로써 오차가 실제값에서 차지하는 상대적인 비율을 산출하고 해당 값을 절대값 취한 후 평균을 구한다.
오차의 정도를 백분율 값으로 나타내기 때문에 모델의 성능을 직관적으로 이해하기 쉬우며, 타겟 변수가 여러개 일 때 각 변수별 모델의 성능을 평가하기 용이하다.
RMSE와 같은 크기 의존적 에러의 단점을 커버하기 위한 방법
실제값이 0일 경우 MAPE는 무한대로 발산할 수 있는 문제점이 있다.
또한 동일한 에러 값을 가지더라도 실제 데이터가 작을수록 더 많은 에러를 부여하는 특징이 있다.
절대적인 값의 오차가 같더라도 실제값과 예측값과의 대소 관계에 따라 과대 추정하는 예측값에 패널티를 더 부여하는 문제가 있다.
예를 들어, 실제값이 150, 예측값이 100일 때 에러 값은 33%, 실제값이 100, 예측값이 50일 때 에러 값은 50%
동일하게 50의 에러를 가지고 있지만 평가값에 차이를 보이게 된다.
SMAPE (Symmetric Mean Absolute Percentage Error)
MAPE 평가 방법에서 동일한 에러값에 대해 다른 평가값을 보이는 문제를 해결하기 위해 사용
하지만 SMAPE는 분모에 예측값 𝑦̂𝑖이 들어가서 𝑦̂𝑖에 의존적인 특성을 지니고 있다.
예측값이 과소추정할 때 분모가 더 작아지므로 계산되는 오차가 커지는 현상이 발생한다
(출처: https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error)
RMSSE (Root Mean Squared Scaled Error)
RMSSE는 Mean Absolute Scaled Error의 변형된 형태로써 앞서 언급한 MAPE와 SMAPE가 지닌 문제점을 해결한다.
MAPE와 SMAPE는 MAE를 스케일링(scaling)하기 위해 시험 데이터의 실제값과 예측값을 활용하기 때문에 오차의 절대값이 같아도 과소, 과대추정 여부에 따라 패널티가 불균등하게 부여된다.
RMSSE는 MSE를 스케일링 할 때 훈련 데이터를 활용하므로 이러한 문제에서 벗어난다.
훈련 데이터에 대해 naive forecasting을 했을 때의 MSE 값으로 나눠주기 때문에 모델 예측값의 과소, 과대 추정에 따라 오차 값이 영향을 받지 않는다.
naive forecast 방법은 가장 최근 관측값으로 예측하는 방법으로, 아래와 같이 정의된다.
𝑖 시점의 예측값을 𝑖−1 시점의 실제값으로 예측하는 방법
naive forecast 방법에 대한 MSE값으로 나눠주기 때문에, RMSSE값이 1보다 크면 naive forecast 방법보다 예측을 못한다는 뜻이며 1보다 적으면 naive forecast 방법보다 예측을 잘한다는 의미를 지닌다
MSE(Mean Squared Error, 평균 제곱 오차)
L2 Loss로도 불린다.
예측값과 실제값의 차이를 제곱하여 산출한 후 평균을 구한 값
예측값이 실제값에서 더 많이 벗어날 수록 MSE값은 기하 급수적으로 증가하는 특성을 지닌다.
산출된 값은 제곱이 되었기 때문에 타겟 변수와 같의 스케일이 다르다.
n: total number of data points
- 제곱을 하기 때문에 MAE와는 다르게 모델의 예측값과 실제값 차이의 면적의(제곱)합
- 제곱을 하기 때문에 특이치(outlier)에 민감
- 수치가 작을수록 정확성이 높은 것은 의미
- 수학적인 분석이 쉽고, 계산이 용이
장점
- 실제 정답에 대한 정답률의 오차뿐만 아니라 다른 오답에 대한 정답률의 오차도 포함하여 계산해준다
- MAE와 달리 최적값에 가까워질수록 이동값이 다르게 변화하기 때문에 최적값에 수렴하기 용이하다
단점
- 값을 제곱하기 때문에 절대값이 1미만인 값은 더 작아지고, 1보다 큰 값은 더 커지는 왜곡이 발생할 수 있다
- 제곱하기 때문에 특이값의 영향을 많이 받는다
RMSE (Root Mean Squared Error, 평균 제곱근 오차)
- MSE에 루트를 씌워 사용
- RMSE를 사용하면 오류 지표를 실제값과 유사한 단위로 다시 변환하여 해석을 쉽게한다.
- 제곱된 값에 루트를 씌우기 때문에 값을 제곱해서 생기는 왜곡이 줄어들며, 오차를 보다 직관적으로 보여준다.
- 예측 대상의 크기에 영향을 바로 받는다.
- MAE보다 특이치에 Robust(강하다)하다.
- 큰 오류값 차이에 대해서 크게 패널티를 주는 이점이 있다.
RMSE가 '매우 큰 에러로 오분류된 데이터'에 큰 패널티를 부여하는 이유는
예측 모델이 데이터를 학습할 때 에러가 큰 데이터(특이값)에 민감하지 않고 잘 학습하기 위함
MSLE (Mean Squared Log Error)
- MSE에 로그를 적용해준 지표
- log(y)가 아니라 log(y+1), y=0일 때, log(y)는 마이너스 무한대가 되므로 이를 보정하기 위해 +1을 한 것
RMSLE (Root Mean Squared Log Error)
- RMSE에 로그를 적용해 준 지표
RMSLE의 Log를 사용하는 이유가 큰 에러에 패널티를 더 부여함으로써 결국 큰 에러에 민감하지 않게 하고 학습을 잘하도록 하기 위함
MedAE (Median Absolute Error)
MAE와 비슷하지만, 평균 대신 중앙값 사용
'Machine Learning > Machine Learning' 카테고리의 다른 글
[Machine Learning] Machine Learning Algorithms (0) | 2022.10.06 |
---|---|
Machine Learning Valuation Metrics (머신러닝 모델 성능 평가) (0) | 2022.10.06 |
[Machine Learning][Metrics] Loss Function(손실 함수) / Cost Function (비용함수) (0) | 2022.10.05 |
Data Mining (데이터 마이닝) (1) | 2022.10.05 |
[Machine Learning][Model Performance Measure] Precision, Recall, Accuracy, F1 score, FPR, ROC curve, AUC (0) | 2022.09.27 |