제주 신용카드 빅데이터 경진대회

RMSLE의 한계

2020.07.07 12:52 5,436 조회

안녕하세요,  세아아부지입니다.



Random Forest, gbm을 써도 "지난달과 동일한 금액 모형"을 이기기가 힘든데요,

고민하고 있는 한가지 이유를 공유합니다.




이 대회는 신용카드 사용금액을 예측하는 모형인데요, 모형 평가 지표 RMSLE 때문에 모순이 발생합니다.


큰 금액을 비슷하게 예측하는 것보다 작은 금액을 큰 차이 없이 예측하는 것이 더 나은 전략일 수 있습니다.




1억을 100억으로 잘못 예측하면 절대적으로는 99억이나 차이가 나고

LE, log error는 log(10000000000+1) - log(100000000+1)  = log(100)이 됩니다.



그럼 0원을 99원으로 잘못 예측하면 어떻게 될까요?

log(99+1) - log(0+1) = log(100)으로 위의 경우와 똑같습니다.



고작 100원도 안되는 차이에 대한 평가치고는 과한 숫자가 나옵니다.

물론 100만원을 100만 100원으로 예측했을 때 LE는 거의 0입니다.




RMSLE의 특성상 실제값이 0이거나 예측값이 0인데 조금이라도 예측값, 실제값과 다르면 큰 페널티를 받습니다.


Random Forest나 gbm 계열의 모형의 특성 상 예측값이 0으로 떨어지는 경우는 상당히 드뭅니다.


모형을 써서 분석하고 계신분들은 지난 달에 결제금액이 0원이었던 지역/업종의 예측값을 매뉴얼하게 0으로 바꿔보시길 추천 드립니다.


0이 부담스러우면 1원도 시도해봄직합니다.




어떤 평가 지표든 장단점이 있겠지만, 일단 큰 것보다 작은 것에 관심을 가져봅니다.



감사합니다:)



로그인이 필요합니다
0 / 1000
hansung.dev
2020.07.07 19:23

좋은 정보 감사합니다. :)

Statistics
2020.07.07 19:51

참고로 다른 분이 올려주신 내용 중 "tweedie"라는 분포가 등장합니다. 
이 분포가 0원이 많은 +1 로그변환된 사용금액을 설명하는 분포입니다. 
알고리즘 활용하시는 분들은 사용하는 함수에서 이 분포와 관련된 옵션을 유심히 살펴보세요!

낙지
2020.07.09 09:28

폭이 작은 AMT를 (100도 안되는 경우) 보다 정확하게 맞추는 것이 중요하겠군요. 정보 감사합니다.