RMSLE (Root Mean Squared Logarithmic Error)를 어떻게 해석합니까?


29

RMSLE (Root Mean Squared Logarithmic Error)을 사용하여 장비 범주의 판매 가격을 예측하는 성능을 평가하는 기계 학습 경쟁을 해왔습니다. 문제는 최종 결과의 성공을 해석하는 방법을 잘 모르겠다는 것입니다.

예를 들어 의 RMSLE을 달성 하면 지수 지수 높이고 rmse처럼 해석 할 수 있습니까? (예 : )?1.052ee1.052=2.863=RMSE

그런 다음 내 예측이 실제 가격과 하여 평균 이라고 말할 수 있습니까? 아니면 메트릭을 해석하는 더 좋은 방법이 있습니까? 아니면 다른 모델의 다른 RMSLE과 비교하는 것을 제외하고는 메트릭을 전혀 해석 할 수 없습니까? ±$2.863


나의 제한된 지식으로, 그것은 : 1. 이분산성을 제거하는 것 2. 다른 차원의 문제를 해결하기 위해

답변:


26

이전에 RMSLE을 본 적이 없지만 .1Ni=1N(log(xi)log(yi))2

따라서 지수를 늘리면 RMSE가 제공되지 않습니다.

e1Ni=1N(log(xi)log(yi))21Ni=1N(xiyi)2 .

양쪽의 로그를 취하면 RMSLE 대 , 이것은 분명히 동일하지 않습니다.12log(1Ni=1N(xiyi)2)

불행히도, 일반적으로 좋은 쉬운 관계는 없습니다 (나보다 똑똑한 사람 / 나보다 열심히 생각하는 것보다 Jensen의 불평등을 사용하여 둘 사이의 관계를 알아낼 수는 있음).

물론 가치가있는 것은 로그 변환 된 변수의 RMSE입니다. 분포의 분포에 대한 대략적인 의미를 원한다면 대수 분포에 대한 대략적인 의미를 얻을 수 있으므로 RMSLE 1.052는 "평균"이 실제 값보다 배나 큼을 의미합니다. 1 / 2.86. 물론 그것은 RMSE가 의미하는 바가 아닙니다 ....2.86


안녕하세요 @Dougal 감사합니다! 이것은 분명히 물건을 정리하는 데 도움이됩니다.
Opus

18

나는 일반적인 사건에 대한 직접적인 해석이 있는지, 심지어 특정 사례를 분석하는지조차 모른다.

예를 들어, 평균 값을 가진 모든 사례를 예측하고 접근 방식과 비교하면 오류가 무엇인지 평가하는 데 관심이있을 수 있습니다.

어쨌든 RMSLE은 일반적으로 예측 값과 실제 값이 모두 큰 경우 예측 값과 실제 값의 큰 차이를 불식시키고 싶지 않을 때 사용됩니다. 이 경우 다시 작성할 수 있으므로 백분율 차이 만 중요합니다.

logPi+1logAi+1=logPi+1Ai+1 .

예를 들어 P = 1000 및 A = 500의 경우 P = 100000 및 A = 50000 인 경우와 거의 동일한 오류가 발생합니다.


1

내 이해는 예측과 실제 숫자에 대해 로그를 할 때 원래보다 훨씬 부드러운 결과를 얻을 수 있다는 것입니다. 대해 더 작은 x를 강조하면서 x가 큰 x의 영향을 줄이십시오 .logx+1

또한 의 간단한 그래프를 그려 직관적 인 인상을 얻을 수 있습니다.y=logx+1


1

원하는대로 값을 직접 변환하지는 않지만보다 쉽게 ​​이해할 수있는 것으로 손실 함수의 성능을 측정하는 간접적 인 방법이 있습니다.

RMSLE을 사용하여 모델을 학습하고 테스트 한 후에는 새 메트릭을 취하십시오. 모델이 RMSLE에 대해 훈련되었다고해서 더 이해하기 쉬운 손실 함수를 지표로 사용할 수는 없습니다.

예를 들어 Keras에서는 모델 컴파일러의 메트릭 범주에서 추가 손실 함수를 지정할 수 있습니다. 아래에서 MSLE은 모델 학습에 사용되지만 (RMSLE과 동일) MAE 및 MSE도 기록됩니다.

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.