Klassifizierung: Gewichtung nach Vorhersage

Logistische Regressionsvorhersagen sollten unvoreingenommen sein. Das bedeutet:

"Mittelwert der Vorhersagen" sollte ≈ "Durchschnitt der Beobachtungen"

Die Vorhersageverzerrung ist eine Menge, die misst, wie weit auseinander diese beiden Durchschnitte voneinander entfernt sind. Das bedeutet:

$$\text{prediction bias} = \text{average of predictions} - \text{average of labels in data set}$$

Eine signifikante Verzerrung ungleich null weist darauf hin, dass ein Fehler in Ihrem Modell vorliegt, da dies darauf hinweist, dass das Modell falsch hinsichtlich der Häufigkeit positiver Labels ist.

Ein Beispiel: 1% aller E-Mails sind Spam. Wenn wir von einer bestimmten E-Mail überhaupt nichts wissen, gehen wir davon aus, dass sie mit 1% Wahrscheinlichkeit Spam ist. Ebenso sollte ein gutes Spammodell durchschnittlich vorhersagen, dass E-Mails mit 1% hoher Wahrscheinlichkeit Spam sind. Mit anderen Worten: Wenn die durchschnittliche Wahrscheinlichkeit jeder einzelnen E-Mail, die Spam ist, gemittelt wird, sollte das Ergebnis 1 % betragen. Wenn stattdessen die durchschnittliche Vorhersage des Modells mit 20% Wahrscheinlichkeit Spam ist, können wir daraus schließen, dass es Vorhersageverzerrungen aufweist.

Mögliche Ursachen sind:

  • Unvollständiger Funktionsumfang
  • Lärmbelastetes Dataset
  • Fehlerhafte Pipeline
  • Verzerrtes Trainingsbeispiel
  • Übermäßig starke Normalisierung

Sie könnten versucht sein, die Vorhersageverzerrung durch Nachbearbeitung des gelernten Modells zu korrigieren, indem Sie eine Kalibrierungsebene hinzufügen, die die Ausgabe Ihres Modells anpasst, um die Vorhersageverzerrung zu reduzieren. Wenn Ihr Modell beispielsweise eine Verzerrung von +3% hat, könnten Sie eine Kalibrierungsebene hinzufügen, die die mittlere Vorhersage um 3 % senkt. Das Hinzufügen einer Kalibrierungsebene ist aus folgenden Gründen jedoch nicht empfehlenswert:

  • Du behebst statt des Grunds das Symptom.
  • Sie haben ein anfälligeres System entwickelt, das Sie immer auf dem neuesten Stand halten müssen.

Vermeiden Sie nach Möglichkeit Kalibrierungsebenen. Projekte, die Kalibrierungsebenen nutzen, sind in der Regel davon abhängig – sie verwenden Kalibrierungsebenen, um alle ihre Sünden zu korrigieren. Letztendlich kann es ein Albtraum sein, die Kalibrierungsebenen beizubehalten.

Biasing und Vorhersageverzerrung

Die logistische Regression sagt einen Wert zwischen 0 und 1 voraus. Alle Beispiele mit Label sind entweder entweder genau 0 (z. B. "not spam") oder genau 1 (z. B. "spam"). Wenn Sie die Vorhersageverzerrung daher anhand eines einzigen Beispiels nicht genau bestimmen können, müssen Sie die Vorhersageverzerrung anhand eines Beispiels untersuchen. Das heißt, die Vorhersageverzerrung für die logistische Regression ist nur sinnvoll, wenn genügend Beispiele gruppiert werden, um einen vorhergesagten Wert (z. B. 0,392) mit beobachteten Werten (z. B. 0,394) vergleichen zu können.

Sie haben folgende Möglichkeiten, um Buckets zu erstellen:

  • Lineare Unterteilung der Zielvorhersagen.
  • Quantile bilden.

Sehen Sie sich die folgende Kalibrierungsgrafik eines bestimmten Modells an. Jeder Punkt steht für einen Bucket mit 1.000 Werten. Die Achsen haben die folgende Bedeutung:

  • Die x-Achse stellt den Durchschnitt der Werte dar, die das Modell für diesen Bucket vorhergesagt hat.
  • Die y-Achse stellt den tatsächlichen Durchschnitt der Werte im Dataset für diesen Bucket dar.

Beide Achsen sind logarithmische Waagen.

Die X-Achse ist die Vorhersage, die Y-Achse die Bezeichnung. Bei mittleren und hohen Vorhersagewerten ist die Vorhersageverzerrung vernachlässigbar. Bei niedrigen Werten für die Vorhersage ist die Vorhersageverzerrung relativ hoch.

Abbildung 8. Vorhersageverzerrungskurve (logarithmische Skalen)

Warum sind die Vorhersagen nur für einen Teil des Modells so schlecht? Hier sind einige Möglichkeiten:

  • Das Trainings-Dataset stellt nicht alle Teilmengen des Datenbereichs dar.
  • Einige Untergruppen des Datensatzes sind lauter als andere.
  • Das Modell ist zu reguliert. Sie sollten den Wert von Lambda verringern.