Was ist der optimale Schwellenwert für F1? Wie berechne ich es?


13

Ich habe die Funktion h2o.glm () in R verwendet, die zusammen mit anderen Statistiken eine Kontingenztabelle im Ergebnis enthält. Die Kontingenztabelle trägt die Überschrift "Kreuztabelle basierend auf dem optimalen Schwellenwert für F1 ".

Wikipedia definiert F1 Score oder F Score als harmonisches Mittel für Präzision und Erinnerung. Wird Precision and Recall jedoch nicht nur gefunden, wenn das Ergebnis der vorhergesagten Werte einer logistischen Regression (zum Beispiel) mithilfe eines Cutoffs in Binärwerte umgewandelt wird.

Jetzt erinnere ich mich an den Zusammenhang zwischen F1 Score und Optimal Threshold. Wie berechnet sich die optimale Schwelle? Wie berechnet sich der optimale Schwellenwert für F1?

Tut mir leid, wenn ich etwas verpasst habe, ich bin neu in Statistiken hier.

Antworten:


21

Ich habe meine erste Arbeit über maschinelles Lernen zu diesem Thema geschrieben. Darin haben wir festgestellt, dass, wenn Ihr Klassifikator kalibrierte Wahrscheinlichkeiten ausgibt (wie sie für die logistische Regression gelten sollten), der optimale Schwellenwert ungefähr die Hälfte der F1-Punktzahl beträgt, die er erreicht. Dies gibt Ihnen eine gewisse Intuition. Die optimale Schwelle wird niemals mehr als 0,5 betragen. Wenn Ihr F1 0,5 ist und der Schwellenwert 0,5 ist, sollten Sie damit rechnen, dass Sie das F1 verbessern, indem Sie den Schwellenwert senken. Wenn dagegen F1 0,5 und der Schwellenwert 0,1 wären, sollten Sie den Schwellenwert wahrscheinlich erhöhen, um F1 zu verbessern.

Das Papier mit allen Details und einer Diskussion darüber, warum F1 eine gute Optimierungsmaßnahme sein kann oder nicht (sowohl im Einzel- als auch im Multilabel-Fall), finden Sie hier:

https://arxiv.org/abs/1402.1892

Entschuldigung, dass es 9 Monate gedauert hat, bis ich auf diesen Beitrag aufmerksam wurde. Ich hoffe, dass Sie die Informationen weiterhin nützlich finden!


1
Kann F1> 1 sein? Wenn Sie 90% A, & 10% ~ A haben, würde ich denken, Sie möchten einen Schwellenwert> .5.
gung - Wiedereinsetzung von Monica

1
Hi @gung. Nein, per Definition ist F1 = 2 * p * r / (p + r) und hat, wie alle F-Beta-Messungen, den Bereich [0,1]. Das Klassenungleichgewicht verändert den Bereich der F1-Punkte nicht. In einigen Anwendungen möchten Sie möglicherweise Vorhersagen mit einem Schwellenwert über 0,5 treffen. Dies ist insbesondere dann der Fall, wenn Sie der Meinung sind, dass falsche Positive schlimmer sind als falsche Negative. Ein solcher Schwellenwert würde jedoch die F1-Punktzahl nicht optimieren. Um zu verstehen, warum wurde der F1-Score im Kontext des Informationsabrufs entwickelt. In diesen Einstellungen ist die positive Klasse selten und in der Regel sind falsch positive Ergebnisse nicht so kostspielig wie falsch negative.
Zachary Chase Lipton

@ZacharyChaseLipton Angenommen, ich habe einen Datensatz, der in train / val / test aufgeteilt ist. Für einen Klassifikator, der eine Wahrscheinlichkeit ausgibt, würde ich den optimalen F1-Schwellenwert für die gesetzte Validierung auswählen, indem ich den Schwellenwert untersuche, der den besten F1 ergibt. Dies erscheint sinnvoll, da die Auswahl des Schwellenwerts der Auswahl des besten Modells ähnelt. Ist das das Richtige?
Pir

Angenommen, ich habe einen Klassifikator, der keine Wahrscheinlichkeiten ausgibt (wie eine SVM). Wie würden Sie dann die F1 auf dem Validierungssatz optimieren?
Pir

Ich habe es zu einer Frage gemacht: stats.stackexchange.com/questions/283931/…
pir
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.