Jak interpretujesz RMSLE (błąd logarytmiczny średniej kwadratowej)?


29

Brałem udział w konkursie uczenia maszynowego, w którym używają RMSLE (Root Mean Squared Logarithmic Error) do oceny wydajności przewidującej cenę sprzedaży danej kategorii sprzętu. Problem w tym, że nie jestem pewien, jak interpretować sukces mojego końcowego wyniku.

Na przykład, jeśli osiągnąłem RMSLE na poziomie czy mogę podnieść moc wykładniczą i zinterpretować to jak rmse? (tj. )?e e 1,052 = 2,863 = R M S E1.052mie1.052=2.863=RMSE

Czy mogę zatem powiedzieć, że moje prognozy wyniosły na podstawie rzeczywistych cen? Czy jest lepszy sposób interpretacji metryki? Czy też metryka może być w ogóle interpretowana, z wyjątkiem porównania z innymi RMSLE innych modeli? ±$2.863


Przy mojej ograniczonej wiedzy mam na celu: 1. usunięcie heteroscedastyczności 2. rozwiązanie problemu różnych wymiarów

Odpowiedzi:


26

Nie widziałem wcześniej RMSLE, ale zakładam, że jest to .1N.ja=1N.(log(xja)-log(yja))2)

Zatem potęgowanie go nie da ci RMSE, da ci

mi1N.ja=1N.(log(xja)-log(yja))2)1N.ja=1N.(xja-yja)2) .

Jeśli weźmiemy dziennik z obu stron, otrzymamy RMSLE w porównaniu z , co oczywiście nie jest tym samym.12)log(1N.ja=1N.(xja-yja)2))

Niestety, ogólnie nie ma łatwej relacji (chociaż ktoś mądrzejszy ode mnie / myślenie o tym mocniej niż ja może prawdopodobnie użyć nierówności Jensena, aby znaleźć jakiś związek między nimi).

Jest to oczywiście RMSE zmiennej transformowanej logarytmicznie, za to, co jest warte. Jeśli chcesz mieć przybliżone rozłożenie rozkładu, możesz zamiast tego uzyskać przybliżone rozłożenie ich logarytmu, tak że RMSLE wynoszący 1,052 oznacza, że ​​„średnia” jest razy większa niż wartość rzeczywista, lub 1 / 2,86. Oczywiście nie do końca to oznacza RMSE ....2,86


Cześć @Dougal dzięki! to zdecydowanie pomaga wyjaśnić sytuację.
Opus

18

Nie wiem, czy istnieje prosta ogólna interpretacja, nawet analizująca konkretny przypadek.

Na przykład możesz być zainteresowany oceną, jaki byłby błąd, gdybyś przewidział wszystkie przypadki ze średnią wartością i porównał ją z twoim podejściem.

W każdym razie uważam, że RMSLE jest zwykle używany, gdy nie chcesz karać ogromnych różnic w przewidywanych i prawdziwych wartościach, gdy zarówno przewidywane, jak i prawdziwe wartości są ogromnymi liczbami. W takich przypadkach liczą się tylko różnice procentowe, ponieważ można przepisać

logP.ja+1-logZAja+1=logP.ja+1ZAja+1 .

Na przykład dla P = 1000 i A = 500 dałby mniej więcej taki sam błąd, jak wtedy, gdy P = 100000 i A = 50000.


1

logx+1

y=logx+1


1

Istnieje pośredni sposób pomiaru wydajności funkcji straty w kategoriach czegoś łatwiejszego do zrozumienia, chociaż nie będzie ona bezpośrednio przekształcać wartości, jak się spodziewałeś.

Gdy model zostanie przeszkolony i przetestowany przy użyciu RMSLE, po prostu weź nowy pomiar. Tylko dlatego, że model został przeszkolony w zakresie RMSLE, nie oznacza to, że nie można wtedy przyjąć innych, bardziej zrozumiałych funkcji strat jako wskaźników.

Na przykład w Keras można określić dodatkowe funkcje strat w kategorii metryk w kompilatorze modeli. Poniżej MSLE służy do trenowania modelu (odpowiednik RMSLE), ale MAE i MSE są również rejestrowane:

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.