AI/ML DL

[머신러닝] 회귀예측 2 - 평가지표 MSLE , RMSLE

SeokjunMan 2023. 9. 7. 22:27

오늘은 캐글 예측 경진대회 playground s3 e11의 평가지표에 대해 알아보자

 

대형마트의 소비자 마케팅 비용을 예측하는 경진대회에서

 

여러 모델들을 가지고 학습하여 평가할 때, 다양한 평가지표들이 있는데

 

이번대회에서는 RMSLE를 사용한다.

 

 

 

1. 개념

Mean Squared Logarithmic Error (MSLE)

 

- 회귀 문제에서 사용되는 손실 함수 중 하나.

- MSLE는 실제 값과 예측 값의 로그를 취한 후에 차이를 제곱하여 평균을 구한다.



MSLE = (1/n) Σ (log(p + 1) - log(a + 1))^2
여기서 p는 예측값, a는 실제값, n은 데이터의 개수를 나타낸다.

 

 


* 장점

MSLE는 로그 변환을 적용하기 때문에, 큰 오차보다 작은 오차에 더욱 집중하여,

이상치에 강건하며 상대적인 오차를 측정하는데 유리하다.

 

 

* 단점

 MSLE의 가장 큰 단점은 예측값과 실제값 모두 양수여야 한다. --> 만약 음수가 포함되어 있다면 에러가 발생한다.

또한 MSE와 비교하여 해석하기 어렵다는 단점도 있다.

 

 

 

 

 

Root Mean Squared Logarithmic Error (RMSLE)

 

- MSLE에 제곱근을 적용한 손실함수이다.

- 즉, 말 그대로 루트를 씌운것과 같다.

 

 

RMSLE = sqrt((1/n) Σ (log(p + 1) - log(a + 1))^2)

여기서 sqrt는 제곱근을 의미한다.

 

 

* 장점

RMSLE 역시 로그 변환을 적용하여 이상치에 강건하고 상대적인 오차를 측정하는 특성을 가지고 있다.

추가로, RMSLE는 제곱근을 취함으로써 오차 값의 스케일이 원래 값과 비슷해져 해석하기 좀 더 용이하다.

즉, MSLE는 매우 큰 값이 나올 수 있는데 RMSLE는 그에 제곱근을 구하여 해석하기 용이해진다.

 

 

* 단점

RMSLE 역시 예측값과 실제값 모두 양수여야 하며, 그렇지 않으면 에러가 발생한다.

 

 

2. 코드 적용 

실제로 경진대회 프로젝트를 하며 작성한 코드이다.

 

먼저, 사용할 평가지표 MSLE와 모델들의 라이브러리를 import한다.

 

 

 

마지막 스코어 평가단계에서 MSLE에 루트를 씌워 RMSLE를 구한다.

 

 

 

여기서 squared = False는

평균 제곱 로그 오차(Mean Squared Logarithmic Error, MSLE)를 계산할 때 제곱근을 적용하라는 의미.

 

RMSLE평가지표에 대한 스코어 결과 !

 

 

피쳐엔지니어링, 하이퍼파라미터 튜닝을 비롯한 여러가지 파인튜닝을 진행하면서

이 손실함수값을 줄여나간다. ( = 정확도를 높여나간다 )

 

 

 

< My Github Link >

https://github.com/seokjunHwang

 

seokjunHwang - Overview

Hwangseokjun. seokjunHwang has 4 repositories available. Follow their code on GitHub.

github.com