Nasıl RMSLE (Kök Ortalama Kareli Logaritmik Hata) yorumlayabilirsiniz?


29

Bir ekipman kategorisinin satış fiyatını tahmin eden performansı değerlendirmek için RMSLE (Ortalama Ortalama Karesel Logaritmik Hatası) kullandıkları bir makine öğrenme yarışması yapıyorum. Sorun nihai sonucumun başarısını nasıl yorumlayacağımdan emin değilim.

Örneğin, bir RMSLE'ye , üstel gücü yükseltip rmse gibi yorumlayabilir miyim? (yani, )1.052ee1.052=2.863=RMSE

Tahminlerimin , gerçek fiyatlardan ortalama olarak olduğunu söyleyebilir miyim ? Yoksa metriği yorumlamanın daha iyi bir yolu var mı? Veya metrik, diğer modellerin diğer RMSLE'leri ile karşılaştırılması dışında hiç yorumlanabilir mi? ±$2.863


Sınırlı bilgim sayesinde: 1.

Yanıtlar:


26

RMSLE'yi daha önce görmedim, ancak bunun .1Ni=1N(log(xi)log(yi))2

Böylece üstelleştirmek size RMSE vermeyecek, size verecek

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

Her iki tarafın günlüğünü alırsak, RMSLE'ye karşı , açıkça aynı şey değil.12log(1Ni=1N(xiyi)2)

Ne yazık ki, genel olarak kolay bir ilişki yoktur (benden daha zeki biri / benden daha iyi düşünen biri, muhtemelen ikisi arasındaki ilişkiyi bulmak için Jensen eşitsizliğini kullanabilir).

Tabii ki, değere göre, log-dönüştürülmüş değişkenin RMSE'si. Dağılımın yayılımına dair kabaca bir fikir istiyorsanız, bunun yerine logaritmalarının yayılması hakkında kabaca bir fikir edinebilirsiniz, böylece 1.052 değerinde bir RMSLE "ortalama" değerinin gerçek değerden kat daha büyük olduğu anlamına gelir veya 1 / 2.86. Tabii ki bu RMSE'nin anlamı değil.2.86


Merhaba @Dougal teşekkürler! bu kesinlikle işleri düzeltmeye yardımcı olur.
Opus

18

Basit bir genel yorumlama olup olmadığını bile bilmiyorum, hatta belirli bir durumu analiz ediyor.

Örneğin, tüm vakaları ortalama değeri olan tahmin edip yaklaşımınızla karşılaştırırsanız, hatanın ne olacağını değerlendirmekle ilgilenebilirsiniz.

Neyse, tahmin edilen ve doğru değerler çok büyük sayılar olduğunda, tahmin edilen ve doğru değerlerdeki büyük farklılıkları cezalandırmak istemediğiniz zaman RMSLE'nin kullanıldığına inanıyorum. Bu durumlarda, yeniden yazabildiğiniz için yalnızca yüzde farkları önemlidir.

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

Örneğin, P = 1000 ve A = 500 için, P = 100000 ve A = 50000'deki kabaca aynı hatayı verir.


1

Anladığım kadarıyla, hem öngörmede hem de gerçek sayılarda logaritma yaptığımızda, orijinal sonuçtan daha yumuşak sonuçlar elde edeceğiz. Ve daha büyük x'in etkisini azaltırken, için daha küçük x'in vurgusunu da .logx+1

Ayrıca basit bir grafiği çizerek sezgisel bir izlenim elde edersiniz .y=logx+1


1

Bir kayıp fonksiyonunun performansını daha kolay anlaşılabilir bir şey açısından ölçmenin dolaylı bir yolu vardır, ancak umduğunuz gibi değerleri doğrudan dönüştürmez.

Model RMSLE kullanılarak eğitilip test edildikten sonra, üzerinde yeni bir ölçüm yapın. Model RMSLE'de eğitildiği için, bu daha sonra başka bir anlaşılabilir kayıp fonksiyonunu metrik olarak alamayacağınız anlamına gelmez.

Örneğin, Keras'ta, model derleyicideki bir metrikler kategorisinde ekstra kayıp işlevleri belirleyebilirsiniz. Altında MSLE modeli eğitmek için kullanılır (RMSLE'ye eşdeğer), ancak MAE ve MSE de kaydedilir:

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.