Klassifikationsschwellenwert nach Kosten von False Positives und False Negatives wählen
Eine praktische Anleitung zur Auswahl eines Entscheidungsschwellenwerts durch Gewichtung der Kosten von False Positives und False Negatives, unter Verwendung eines gehaltenen Validierungssets und scikit-learn Confusion Matrizen.
Auf dieser Seite
Die kurze Antwort
Vergleichen Sie Kandidaten-Schwellenwerte an Validierungsdaten unter Verwendung expliziter Fehlerkosten. Für die hypothetischen Anzahlen in dieser Anleitung hat Variante A vier False Positives und ein False Negative; Variante B hat eines und drei. Bei Kosten von 1 und 5 betragen ihre Gesamtkosten 9 und 16, also ist A unter diesen beiden Optionen günstiger. Dies ist eine veranschaulichende Rechnung, kein Ergebnis eines angepassten Modells und kein Beweis für den global optimalen Schwellenwert. Halten Sie finale Testdaten getrennt und bewerten Sie Unsicherheit sowie Einsatzbedingungen.
Scores von Entscheidungen trennen
Ein Klassifikator erzeugt einen Score, während ein Schwellenwert diesen Score in eine Entscheidung verwandelt. Für eine binäre Regel können Sie die positive Entscheidung als Score größer oder gleich dem Schwellenwert definieren. Die Richtung des Scores und die positive Klasse müssen explizit sein. Ein wahrscheinlichkeitsartiger Wert begründet nicht allein, dass das Modell kalibriert ist.
Das Ändern des Schwellenwerts verändert, welche Fälle positive und negative Entscheidungen erhalten. Es passt das zugrunde liegende Modell nicht nach und macht seine Wahrscheinlichkeiten nicht unverzerrt. Ein konventioneller Cutoff wie 0,5 ist ein Ausgangspunkt für Wahrscheinlichkeits-Scores, keine universell kostenoptimale Einstellung. Vergleichen Sie Alternativen gegen die Entscheidung, die Sie tatsächlich treffen müssen.
Angeben, welcher Fehler mehr kostet
In vielen Bereichen ist ein False Negative (FN) weitaus schädlicher als ein False Positive (FP). Die kostenempfindliche Schwellenwertauswahl erfordert, dass der Nutzer numerische Strafen zuordnet, z. B. Kosten(FP)=1 und Kosten(FN)=5. Diese Zahlen werden nicht aus den Daten abgeleitet; sie spiegeln Domänenwissen, regulatorische Auswirkungen oder downstream-Kosten wider. Sind die Kosten festgelegt, ist die Gesamtkosten für einen gegebenen Schwellenwert einfach Kosten(FP)·FP + Kosten(FN)·FN.
Confusion Matrix zählen
Die confusion_matrix von scikit-learn folgt der Konvention Zeilen = wahre Klasse, Spalten = vorhergesagte Klasse. Bei binären Problemen mit labels=[0,1] sind die Einträge: TN = C[0,0], FP = C[0,1], FN = C[1,0], TP = C[1,1]. Mit den Validierungs-Scores und einem Kandidaten-Schwellenwert können wir y_pred = (probs >= thr).astype(int) erhalten und dann confusion_matrix(y_val, y_pred, labels=[0,1]) aufrufen.
Zwei veranschaulichende Schwellenwerte vergleichen
Verwenden Sie explizit hypothetische Confusion-Anzahlen: Variante A hat FP=4 und FN=1, und Variante B hat FP=1 und FN=3. Sei eine False-Positive-Kosten von einer Einheit und eine False-Negative-Kosten von fünf Einheiten. Die Gesamtkosten für A sind 1*4 + 5*1 = 9. Die Gesamtkosten für B sind 1*1 + 5*3 = 16.
A ist unter diesen beiden konstruierten Optionen günstiger, obwohl B weniger False Positives hat. Diese Anzahlen dienen der arithmetischen Veranschaulichung; der Code passt keinen Klassifikator an und erzeugt sie nicht aus einem Datensatz. Die beiden unten ausgegebenen Gesamtkosten sind erwartete Ergebnisse aus der Formel, keine Beobachtungen aus einem ausgeführten Test.
cost_fp = 1
cost_fn = 5
fp_a, fn_a = 4, 1
fp_b, fn_b = 1, 3
cost_a = cost_fp * fp_a + cost_fn * fn_a
cost_b = cost_fp * fp_b + cost_fn * fn_b
print("Cost A:", cost_a)
print("Cost B:", cost_b)
Auf gehaltenen Validierungsdaten wählen
Passen Sie das Modell auf Trainingsdaten an, vergleichen Sie dann Schwellenwerte an separaten Validierungsvorhersagen. Berechnen Sie die Validierungszahlen nicht mit denselben Beobachtungen, die das Modell angepasst haben. Verwenden Sie eine passende Aufteilung für die Aufgabe: Ein chronologisches Problem kann eine zeitrespektierende Aufteilung erfordern statt zufälliger Stichproben.
Die Schwellenwertauswahl selbst nutzt die Validierungsergebnisse, daher kann die kleinste beobachtete Validierungskosten optimistisch sein. Eine separate Aufteilung verhindert die direkte Wiederverwendung von Trainingsbeispielen für das Tuning; sie garantiert keine unverzerrte Schätzung oder genug Positive. Protokollieren Sie die Aufteilung, Kandidaten-Schwellenwerte, Klassenanzahlen und Kostenannahmen, damit der Vergleich interpretierbar bleibt.
Schwellenwertauswahl vom Testset fernhalten
Frieren Sie Modell, Schwellenwert und Vorverarbeitung ein, bevor Sie auf finale Testdaten evaluieren, die nicht für Anpassung oder Schwellenwertauswahl verwendet wurden. Wenn die Testergebnisse dazu führen, dass Sie erneut einstellen, wird diese Stichprobe Teil des Auswahlprozesses und erfüllt nicht mehr dieselbe unabhängige Evaluierungsrolle.
Ein unabhängiges Testset ist nützlich, aber keine Garantie für Produktionsleistung. Eine kleine Stichprobe, eine nicht repräsentative Population oder sich ändernde Bedingungen können die Schätzung verzerren. Geben Sie die beobachteten Anzahlen, die Stichprobengröße und die Unsicherheit an, statt eine einzelne Gesamtkosten als garantierte oder unverzerrte Produktionskosten zu bezeichnen.
Einsatzprävalenz prüfen
Die Einsatzprävalenz ist der Anteil positiver Fälle in der Population, in der die Entscheidung genutzt wird. Sie kann von der Validierungsprävalenz abweichen. Um erwartete Kosten pro Fall unter einer vorgeschlagenen Prävalenz p zu vergleichen, verwenden Sie Kosten(FP)*(1-p)*FPR + Kosten(FN)*p*FNR, wobei FPR der Anteil negativer Fälle ist, die als positiv klassifiziert werden, und FNR der Anteil positiver Fälle, die als negativ klassifiziert werden.
Diese Anpassung nimmt voraus, dass die bedingten Fehlerraten unter der geänderten Klassenverteilung weiterhin anwendbar bleiben. Sie behandelt keine willkürlichen Änderungen in Features, Kalibrierung oder Labelprozess. Für beide Klassen sind genügend Beobachtungen nötig, um ihre Raten zu schätzen. Das Multiplizieren der erwarteten Kosten pro Fall mit einer vorgeschlagenen Populationsgröße ergibt eine Gesamtkosten unter diesen Annahmen; vergleichen Sie rohe Anzahlen aus unterschiedlich großen Populationen nicht so, als wären sie austauschbar.
Angaben, was der Kostenvergleich auslässt
Die einfache Kostenformel ignoriert mehrere reale Faktoren: (1) den monetären Wert downstream-Aktionen (z. B. weitere Tests), (2) die Unsicherheit in Kostenabschätzungen, (3) potenzielle Vorteile einer frühen Erkennung über binäre Ergebnisse hinaus und (4) den Effekt der Kalibrierung - Wahrscheinlichkeitsschätzungen können verzerrt sein, sodass ein niedriger Schwellenwert günstiger erscheint als er tatsächlich ist. Diese Auslassungen sollten dokumentiert werden, und eine Sensitivitätsanalyse kann durch Variation der Kostenparameter durchgeführt werden.
Was Sie prüfen sollten
- Positive Klasse und Score-Richtung explizit definieren.
- Trainings- und Schwellenwert-Auswahlbeobachtungen getrennt halten.
- Bei labels=[0,1] die Confusion Matrix als TN, FP, FN, TP in Zeilenreihenfolge lesen.
- Die False-Positive- und False-Negative-Kosten angeben, einschließlich ihrer Einheiten.
- Die Gesamtkosten 9 und 16 als konstruierte Rechenbeispiele behandeln.
- Finale Testdaten von der Schwellenwertauswahl fernhalten.
- Bei Anpassung der Prävalenz die Annahme über die bedingten Fehlerraten angeben.
Geltungsbereich
Das Beispiel verwendet hypothetische binäre Confusion-Anzahlen und feste Kosten. Es identifiziert die günstigere von zwei Optionen, nicht einen global optimalen Schwellenwert. Unabhängige Validierungs- oder Testaufteilungen garantieren keine unverzerrten Produktionsschätzungen, kalibrierte Wahrscheinlichkeiten oder Stabilität bei Verteilungsänderungen. Echte Einsätze benötigen repräsentative Daten, Unsicherheitsanalysen und begründete Kostenannahmen.