Como você interpreta o RMSLE (erro logarítmico médio quadrático da raiz)?


29

Venho realizando uma competição de aprendizado de máquina em que eles usam o RMSLE (erro logarítmico quadrado médio da raiz) para avaliar o desempenho que prevê o preço de venda de uma categoria de equipamento. O problema é que não tenho certeza de como interpretar o sucesso do meu resultado final.

Por exemplo, se eu consegui um RMSLE de Eu poderia elevá-la a exponencial de energia e interpretá-lo como RMSE? (isto é, )?e e 1.052 = 2.863 = R M S E1.052ee1.052=2.863=RMSE

Eu poderia então dizer que minhas previsões eram em média a partir dos preços reais? Ou existe uma maneira melhor de interpretar a métrica? Ou a métrica pode mesmo ser interpretada, com exceção da comparação com os outros RMSLEs de outros modelos? ±$2.863


Com o meu conhecimento limitado, é a: 1. remover heterocedasticidade 2. para resolver o problema de diferentes dimensões

Respostas:


26

Eu não tinha visto o RMSLE antes, mas suponho que seja .1NEu=1N(registro(xEu)-registro(yEu))2

Assim, exponenciando isso não lhe dará RMSE, mas sim

e1NEu=1N(registro(xEu)-registro(yEu))21NEu=1N(xEu-yEu)2 .

Se tomarmos o log de ambos os lados, obteremos o RMSLE versus , que claramente não é a mesma coisa.12registro(1NEu=1N(xEu-yEu)2)

Infelizmente, não existe um bom relacionamento fácil em geral (embora alguém mais esperto do que eu / pensando mais do que eu provavelmente possa usar a desigualdade de Jensen para descobrir algum relacionamento entre os dois).

É, obviamente, o RMSE da variável transformada em log, pelo que vale a pena. Se você deseja uma noção aproximada da distribuição da distribuição, pode obter uma noção aproximada da distribuição do logaritmo, de modo que um RMSLE de 1,052 signifique que a "média" é vezes maior que o valor real ou 1 / 2,86. Claro que não é exatamente isso que RMSE significa ...2,86


Olá @Dougal obrigado! isso definitivamente ajuda a esclarecer as coisas.
Opus

18

Não sei se existe uma interpretação genérica direta, mesmo analisando um caso específico.

Por exemplo, você pode estar interessado em avaliar qual seria o erro se prever todos os casos com o valor médio e compará-lo à sua abordagem.

De qualquer forma, acredito que o RMSLE geralmente é usado quando você não deseja penalizar grandes diferenças nos valores previstos e verdadeiros, quando os valores previstos e verdadeiros são grandes números. Nesses casos, apenas as diferenças percentuais são importantes, pois você pode reescrever

registroPEu+1-registroUMAEu+1=registroPEu+1UMAEu+1 .

Por exemplo, para P = 1000 e A = 500, você teria o mesmo erro de quando P = 100000 e A = 50000.


1

registrox+1

y=registrox+1


1

Existe uma maneira indireta de medir o desempenho de uma função de perda em termos de algo mais facilmente compreensível, embora ele não converta diretamente valores como você esperava.

Depois que o modelo tiver sido treinado e testado usando o RMSLE, basta fazer uma nova métrica. Só porque o modelo foi treinado no RMSLE, isso não significa que você não pode assumir outras funções de perda mais compreensíveis como métricas.

No Keras, por exemplo, você pode especificar funções extras de perda em uma categoria de métricas no compilador de modelos. No abaixo, o MSLE é usado para treinar o modelo (equivalente ao RMSLE), mas o MAE e o MSE também são registrados:

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.