Próbuję lepiej zrozumieć utratę logów i sposób, w jaki to działa, ale jedną rzeczą, której nie mogę znaleźć, jest umieszczenie numeru utraty logów w jakimś kontekście. Jeśli mój model ma utratę dziennika 0,5, czy to dobrze? Co uważa się za dobry i zły wynik? Jak zmieniają się te progi?
machine-learning
loss-functions
log-loss
użytkownik1923975
źródło
źródło
Odpowiedzi:
Logloss to po prostu gdzie p jest po prostu prawdopodobieństwem przypisanym do prawdziwej klasy.L ( strja) = - log( pja) p
Zatem jest dobre, przypisaliśmy prawdopodobieństwo 1 do właściwej klasy, podczas gdy L ( p ) = + ∞ jest złe, ponieważ przypisaliśmy prawdopodobieństwo 0 do rzeczywistej klasy.L ( p ) = 0 1 L(p)=+∞ 0
Tak więc, odpowiadając na pytanie, oznacza, średnio, to przypisać do właściwej klasy prawdopodobieństwo p ≈ 0,61 całej próbki.L(p)=0.5 p≈0.61
Teraz decyzja, czy to wystarcza, zależy od aplikacji, więc to zależy od argumentu.
źródło
Jak każda metryka, dobra metryka jest ta lepsza niż „głupie”, przypadkowe zgadnięcie, gdybyś musiał zgadywać bez informacji na temat obserwacji. W statystykach nazywa się to modelem wyłącznie przechwytywania.
To „głupie” odgadnięcie zależy od 2 czynników:
W przypadku metryki LogLoss jedną z powszechnie znanych „ metryk ” jest stwierdzenie, że 0,693 jest wartością nieinformacyjną. Liczbę tę uzyskuje się przez przewidywanie
p = 0.5
dla dowolnej klasy problemu binarnego. Dotyczy to tylko zrównoważonych problemów binarnych . Ponieważ gdy rozpowszechnienie jednej klasy wynosi 10%, zawsze będziesz przewidywałp =0.1
dla tej klasy. To będzie twoja podstawowa głupia, przypadkowa prognoza, ponieważ przewidywanie0.5
będzie głupsze.I. Wpływ liczby klas
N
na głupi logloss:W przypadku zrównoważonym (każda klasa ma tę samą przewagę), gdy przewidujesz
p = prevalence = 1 / N
dla każdej obserwacji, równanie staje się po prostu:Logloss = -log(1 / N)
log
istotaLn
logarytmem nepijskim dla tych, którzy stosują tę konwencję.W przypadku binarnym
N = 2
:Logloss = - log(1/2) = 0.693
Więc głupie Loglosses są następujące:
II. Wpływ rozpowszechnienia klas na głupiego Loglossa:
za. Przypadek klasyfikacji binarnej
W takim przypadku zawsze przewidujemy
p(i) = prevalence(i)
i otrzymujemy następującą tabelę:Tak więc, gdy klasy są bardzo niezrównoważone (częstość <2%), utrata logarytmu wynosząca 0,1 może być naprawdę bardzo zła! W takim przypadku dokładność 98% byłaby zła. Więc może Logloss nie byłby najlepszym miernikiem do użycia
b. Obudowa trójklasowa
„Głupi” - brak logotypu w zależności od rozpowszechnienia - przypadek trzech klas:
Widzimy tutaj wartości zrównoważonych przypadków binarnych i trójklasowych (0,69 i 1,1).
WNIOSEK
Logloss 0,69 może być dobry w przypadku problemu wieloklasowego, a bardzo zły w przypadku binarnej stronniczości.
W zależności od przypadku lepiej jest obliczyć podstawę problemu, aby sprawdzić znaczenie swojej prognozy.
W stronniczych przypadkach rozumiem, że logloss ma ten sam problem co dokładność i inne funkcje utraty: zapewnia jedynie globalny pomiar twojej wydajności. Lepiej więc uzupełnij swoje zrozumienie miernikami koncentrującymi się na klasach mniejszościowych (przypominanie i precyzja), a może w ogóle nie używaj loglossa.
źródło
Jest to w rzeczywistości bardziej skomplikowane niż reakcja Firebugs i wszystko zależy od nieodłącznej zmienności procesu, który próbujesz przewidzieć.
Kiedy mówię zmienność, mam na myśli „jeśli wydarzenie miało się powtórzyć w dokładnie takich samych warunkach, znanych i nieznanych, jakie jest prawdopodobieństwo, że ten sam wynik wystąpi ponownie”.
Idealny predyktor miałby stratę, dla prawdopodobieństwa P: Strata = Pnn P + (1-P) ln (1-P)
Jeśli próbujesz przewidzieć coś, w którym, co gorsza, niektóre zdarzenia zostaną przewidziane z wynikiem 50/50, to po zintegrowaniu i przyjęciu średniej średnia strata wyniesie: L = 0,5
Jeśli to, co próbujesz przewidzieć, jest odrobinę bardziej powtarzalne, utrata idealnego modelu jest mniejsza. Powiedzmy na przykład, że przy wystarczających informacjach idealny model był w stanie przewidzieć wynik zdarzenia, w którym we wszystkich możliwych zdarzeniach najgorsze mogłoby powiedzieć „to zdarzenie nastąpi z prawdopodobieństwem 90%”, a następnie średnia strata wyniesie L = 0,18 .
Istnieje również różnica, jeśli rozkład prawdopodobieństwa nie jest jednolity.
W odpowiedzi na twoje pytanie odpowiedź brzmi: „zależy to od natury tego, co próbujesz przewidzieć”
źródło
Powiedziałbym, że standardowa odpowiedź statystyczna polega na porównaniu z modelem wyłącznie przechwytującym. (obsługuje to niezrównoważone klasy wspomniane w innych odpowiedziach) cf mcFadden's pseudo r ^ 2. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/
Teraz problemem jest maksymalna wartość. zasadniczo problemem jest to, że prawdopodobieństwo zdarzenia jest niezdefiniowane poza modelem zdarzeń. sugeruję, abyś wziął swoje dane testowe i zagregował je do pewnego poziomu, aby uzyskać oszacowanie prawdopodobieństwa. następnie obliczyć logloss tego oszacowania.
np. prognozujesz współczynnik klikalności w oparciu o (strona internetowa, identyfikator_adresu, identyfikator_użytkownika), następnie agregujesz kliknięcia, wyświetlenia np. do poziomu strony internetowej i obliczasz współczynnik CTR w zestawie testowym dla każdej strony internetowej. następnie obliczyć log_loss na testowym zestawie danych, używając tych testowych współczynników klikalności jako prognoz. Jest to wtedy optymalny brak logarytmiczny w zestawie testowym dla modelu używającego tylko identyfikatorów witryn . Problem polega na tym, że możemy zmniejszyć tę stratę do minimum, dodając więcej funkcji, aż każdy rekord zostanie jednoznacznie zidentyfikowany.
źródło