Come si interpreta RMSLE (errore logaritmico al quadrato della radice)?


29

Ho partecipato a una competizione di machine learning in cui usano RMSLE (Root Mean Squared Logarithmic Error) per valutare le prestazioni prevedendo il prezzo di vendita di una categoria di apparecchiature. Il problema è che non sono sicuro di come interpretare il successo del mio risultato finale.

Ad esempio, se ho raggiunto un RMSLE di potrei aumentare la potenza esponenziale e interpretarla come rmse? (ad es. )?1.052ee1.052=2.863=RMSE

Potrei quindi dire che le mie previsioni erano in media dai prezzi effettivi? O c'è un modo migliore per interpretare la metrica? O la metrica può anche essere interpretata affatto con l'eccezione del confronto con gli altri RMSLE di altri modelli? ±$2.863


Con la mia conoscenza limitata, è di: 1. rimuovere l'eteroscedasticità 2. per risolvere il problema di diverse dimensioni

Risposte:


26

Non ho mai visto RMSLE prima, ma presumo sia .1NΣio=1N(log(Xio)-log(yio))2

Quindi esponendo non ti darà RMSE, ti darà

.e1NΣio=1N(log(Xio)-log(yio))21NΣio=1N(Xio-yio)2

Se prendiamo il registro di entrambi i lati, otteniamo RMSLE contro , che chiaramente non è la stessa cosa.12log(1NΣio=1N(Xio-yio)2)

Sfortunatamente, non c'è una buona relazione facile in generale (anche se qualcuno più intelligente di me / pensarci più duramente di me potrebbe probabilmente usare la disuguaglianza di Jensen per capire qualche relazione tra i due).

2.86


Ciao @Dougal grazie! questo aiuta sicuramente a chiarire le cose.
Opus,

18

Non so se esiste un'interpretazione generica semplice, nemmeno analizzando un caso particolare.

Ad esempio, potresti essere interessato a valutare quale sarebbe l'errore se prevedi tutti i casi con il valore medio e lo confronti con il tuo approccio.

Ad ogni modo, credo che RMSLE sia solitamente usato quando non si desidera penalizzare enormi differenze nei valori previsti e reali quando sia i valori previsti che quelli reali sono numeri enormi. In questi casi sono importanti solo le differenze percentuali poiché è possibile riscrivere

.logPio+1-logUNio+1=logPio+1UNio+1

Ad esempio per P = 1000 e A = 500 ti darebbe approssimativamente lo stesso errore di quando P = 100000 e A = 50000.


1

logX+1

y=logX+1


1

Esiste un modo indiretto per misurare le prestazioni di una funzione di perdita in termini di qualcosa di più facilmente comprensibile, anche se non convertirà direttamente i valori come speravi.

Una volta che il modello è stato addestrato e testato utilizzando RMSLE, è sufficiente prendere una nuova metrica su di esso. Solo perché il modello è stato addestrato su RMSLE, ciò non significa che non è possibile prendere altre funzioni di perdita più comprensibili come metriche.

In Keras, ad esempio, è possibile specificare funzioni di perdita extra in una categoria di metriche nel compilatore del modello. Nel sottostante MSLE viene utilizzato per addestrare il modello (equivalente a RMSLE), ma vengono registrati anche MAE e MSE:

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.