Was ist ein guter Protokollverlust?

16

Ich versuche, den Protokollverlust und seine Funktionsweise besser zu verstehen, aber eine Sache, die ich nicht zu finden scheine, ist, die Protokollverlustnummer in einen Kontext zu setzen. Wenn mein Modell einen log-Verlust von 0,5 hat, ist das gut? Was ist ein gutes und ein schlechtes Ergebnis? Wie verändern sich diese Schwellenwerte?

user1923975
quelle
Dieser Thread ist hier relevant: stats.stackexchange.com/q/414349/121522
mkt - Monica

Antworten:

19

Der log-Verlust ist einfach wobeiL(pich)=-Log(pich) einfach die Wahrscheinlichkeit ist, die der realen Klasse zugeschrieben wird.p

Damit gut ist, haben wir die Wahrscheinlichkeit 1 der richtigen Klasse zugeordnet, während L ( p ) = + schlecht ist, weil wir die Wahrscheinlichkeit 0 der tatsächlichen Klasse zugeordnet haben.L(p)=01L(p)=+0

Wenn Sie also Ihre Frage beantworten, bedeutet , dass Sie der richtigen Klasse im Durchschnitt die Wahrscheinlichkeit p 0,61 für alle Stichproben zuschreiben .L(p)=0,5p0,61

Jetzt ist die Entscheidung, ob dies gut genug ist, tatsächlich von der Anwendung abhängig, und es liegt also am Argument.

Firebug
quelle
9

Wie jede Metrik ist eine gute Metrik die bessere als die "blöde", zufällige Vermutung, wenn Sie keine Informationen zu den Beobachtungen erraten müssten. Dies wird in der Statistik als Intercept-Only-Modell bezeichnet.

Diese "dumme" Vermutung hängt von 2 Faktoren ab:

  1. die Anzahl der Klassen
  2. das Gleichgewicht der Klassen: ihre Prävalenz im beobachteten Datensatz

Im Fall der LogLoss-Metrik ist eine übliche "bekannte" Metrik, dass 0,693 der nicht informative Wert ist. Diese Zahl wird durch Vorhersagen p = 0.5für jede Klasse eines binären Problems erhalten. Dies gilt nur für ausgeglichene Binärprobleme . Denn wenn die Prävalenz einer Klasse 10% beträgt, werden Sie dies immer p =0.1für diese Klasse vorhersagen . Dies wird Ihre Grundlage für dumme, zufällige Vorhersagen sein, weil Vorhersagen0.5 dümmer sein werden.

I. Einfluss der Klassenanzahl Nauf den Dummkopfverlust:

Im ausgeglichenen Fall (jede Klasse hat die gleiche Prävalenz) lautet p = prevalence = 1 / Ndie Gleichung , wenn Sie für jede Beobachtung vorhersagen , einfach:

Logloss = -log(1 / N)

log Sein Ln , neperianischer Logarithmus für diejenigen, die diese Konvention verwenden.

Im binären Fall N = 2:Logloss = - log(1/2) = 0.693

Die dummen Loglosses sind also folgende:

Dummkopf je nach Anzahl der Klassen - ausgewogener Fall

II. Einfluss der Klassenprävalenz auf den dummen Logloss:

ein. Fall der binären Klassifizierung

In diesem Fall sagen wir immer voraus p(i) = prevalence(i)und erhalten die folgende Tabelle:

binäre Klassifikation logloss, ausgeglichen - Tabelle

Wenn die Klassen sehr unausgewogen sind (Prävalenz <2%), kann ein logarithmischer Verlust von 0,1 sehr schlecht sein! Eine Genauigkeit von 98% wäre in diesem Fall schlecht. Vielleicht wäre Logloss nicht die beste Metrik

binäre Klassifikation logloss, unsymmetrisch - Diagramm

b. Fall mit drei Klassen

"Dumm" -Logloss je nach Prävalenz - Dreiklassenfall:

Drei-Klassen-Klassifikation logloss, unausgeglichen

Wir können hier die Werte von ausgeglichenen Binär- und Dreiklassenfällen (0,69 und 1,1) sehen.

FAZIT

Ein logarithmischer Verlust von 0,69 kann in einem Problem mit mehreren Klassen gut und in einem binär voreingenommenen Fall sehr schlecht sein.

Abhängig von Ihrem Fall sollten Sie sich die Grundlinie des Problems selbst berechnen, um die Bedeutung Ihrer Vorhersage zu überprüfen.

In den voreingenommenen Fällen hat logloss meines Wissens das gleiche Problem wie die Genauigkeit und andere Verlustfunktionen: Es bietet nur eine globale Messung Ihrer Leistung. Daher sollten Sie Ihr Verständnis besser mit Kennzahlen ergänzen, die sich auf die Minderheitsklassen konzentrieren (Rückruf und Genauigkeit) oder Logloss überhaupt nicht verwenden.

Fed Zee
quelle
(+1) Willkommen zum Lebenslauf! Sie können den mathematischen Schriftsatz in Ihrem Beitrag verwenden. Weitere Informationen: math.meta.stackexchange.com/questions/5020/…
Sycorax sagt Reinstate Monica
Besser als meine Antwort, +1
Firebug
5

Das ist also komplizierter als die Reaktion von Firebugs und hängt von der inhärenten Variation des Prozesses ab, den Sie vorhersagen möchten.

Wenn ich "Variation" sage, dann meine ich "wenn sich ein Ereignis unter genau den gleichen bekannten und unbekannten Bedingungen wiederholen sollte, wie hoch ist die Wahrscheinlichkeit, dass das gleiche Ergebnis erneut eintritt".

Ein perfekter Prädiktor hätte einen Verlust für die Wahrscheinlichkeit P: Verlust = P ln P + (1-P) ln (1-P)

Wenn Sie versuchen, etwas vorherzusagen, bei dem im schlimmsten Fall einige Ereignisse mit einem Ergebnis von 50/50 vorhergesagt werden, dann wäre der durchschnittliche Verlust durch Integrieren und Ermitteln des Durchschnitts: L = 0,5

Wenn das, was Sie vorhersagen möchten, ein bisschen wiederholbarer ist, ist der Verlust eines perfekten Modells geringer. Nehmen wir zum Beispiel an, ein perfektes Modell könnte bei ausreichender Information den Ausgang eines Ereignisses vorhersagen, bei dem das Schlimmste, was es sagen könnte, "dieses Ereignis wird mit einer Wahrscheinlichkeit von 90% eintreten" ist, dann wäre der durchschnittliche Verlust L = 0,18 .

Es gibt auch einen Unterschied, wenn die Verteilung der Wahrscheinlichkeiten nicht einheitlich ist.

Als Antwort auf Ihre Frage lautet die Antwort: "Es hängt von der Art ab, was Sie vorhersagen wollen."

Simeon
quelle
L0,693p
L0,18L0,5
1
Ich bin mit Ihrem schlimmsten Fall nicht einverstanden. Ich sage nur, dass ein "gutes Ergebnis" vom System abhängt. 0,4 kann ein gutes Ergebnis für einige Systeme (wie das letztere Beispiel) oder ein schlechtes Ergebnis (für das erstere) anzeigen.
Simeon
0

Ich würde sagen, die Standard-Statistikantwort ist der Vergleich mit dem Intercept-Only-Modell. (Dies behandelt die in anderen Antworten erwähnten unausgeglichenen Klassen.) Siehe mcFaddens Pseudo r ^ 2. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

Jetzt ist das Problem, was der Maximalwert ist. Grundsätzlich besteht das Problem darin, dass die Wahrscheinlichkeit eines Ereignisses außerhalb eines Modells für die Ereignisse undefiniert ist. Ich würde vorschlagen, dass Sie Ihre Testdaten auf ein bestimmtes Niveau aggregieren, um eine Wahrscheinlichkeitsschätzung zu erhalten. Berechnen Sie dann den logarithmischen Verlust dieser Schätzung.

Sie prognostizieren z. B. die Klickrate basierend auf (website, ad_id, consumer_id), aggregieren dann Klicks und Impressionen auf z. B. website-Ebene und berechnen die Klickrate für das Testset für jede Website. Berechnen Sie dann log_loss für Ihr Test-Data_set, indem Sie diese Test-Klickraten als Vorhersagen verwenden. Dies ist dann der optimale Protokollverlust in Ihrem Testset für ein Modell, das nur Website-IDs verwendet . Das Problem ist, dass wir diesen Verlust so klein machen können, wie wir möchten, indem wir einfach weitere Funktionen hinzufügen, bis jeder Datensatz eindeutig identifiziert ist.

seanv507
quelle