Unausgeglichene Daten

Ein Klassifizierungs-Dataset mit verzerrten Klassenanteilen wird unausgeglichen. Klassen, die einen großen Teil des Datasets ausmachen, werden als Hauptklassen bezeichnet. Die kleineren Gruppen bilden die untergeordneten Klassen.

Was zählt als unausgeglichen? Die Antwort reicht von leicht bis extrem, wie die folgende Tabelle zeigt.

Grad des Ungleichgewichts Anteil der Minderheitsklasse
Niedrig 20–40% des Datensatzes
Mittel 1–20% des Datenpools
Extrem < 1% des Datensatzes

Warum sollten Sie nach unausgeglichenen Daten suchen? Wenn Sie eine Klassifizierungsaufgabe mit einem unausgeglichenen Dataset haben, müssen Sie möglicherweise eine bestimmte Stichprobentechnik anwenden.

Im folgenden Beispiel sehen Sie ein Modell, das Betrug erkennt. Bei 200 Transaktionen in diesem Datensatz kommt es zu einer Betrugsinstanz, d. h., bei der tatsächlichen Verteilung sind etwa 0,5% der Daten positiv.

Balkendiagramm mit zwei Balken Ein Balken zeigt etwa 200 auszuschließende Transaktionen, der andere Balken eine positive Transaktion.

Warum könnte das problematisch sein? Bei so vielen positiven Ergebnissen nimmt das Trainingsmodell den Großteil seiner Zeit mit negativen Beispielen zu und lernt nicht genug von positiven. Wenn Ihre Batchgröße beispielsweise 128 beträgt, haben viele Batches keine positiven Beispiele, sodass die Gradienten weniger informativ sind.

Wenn Sie einen unausgeglichenen Datensatz haben, versuche es zuerst mit dem Training der tatsächlichen Verteilung. Wenn das Modell gut funktioniert und generalisiert wird, sind Sie fertig. Falls nicht, versuchen Sie es mit dem folgenden Sampling und der Gewichtung.

Downsampling und Schwergewicht

Ein wirksamer Weg, um unausgeglichene Daten zu verarbeiten, besteht darin, die Hauptklasse zu reduzieren und zu gewichten. Definieren wir zuerst diese beiden neuen Begriffe:

  • Downsampling (in diesem Kontext) bezeichnet das Training mit einer überproportional kleinen Teilmenge der meisten Beispiele.
  • Gewichtung bedeutet, dass der heruntergerechneten Klasse eine Beispielgewichtung hinzugefügt wird, die dem Faktor entspricht, um den ein Upsampling durchgeführt wurde.

Schritt 1: Stichproben der Mehrheitsklasse reduzieren Sehen wir uns noch einmal unser Betrüger-Datenbestand mit 1 positiven bis 200 auszuschließenden Negativen an. Bei einer Verkleinerung um einen Faktor von 10 erhöht sich der Kontostand auf 1 positive auf 20 negative (5%). Obwohl das resultierende Trainings-Dataset immer noch mäßig unausgeglichen ist, ist der Anteil von positiven zu negativen Werten viel besser als der ursprüngliche Extrem-ausgeglichene Anteil (0,5%).

Balkendiagramm mit zwei Balken Ein Balken zeigt 20 negative Transaktionen, während der andere Balken eine positive Transaktion anzeigt.

Schritt 2: Upsampling-Klasse gewichten: Im letzten Schritt werden der Sampled Sampled Class Beispielgewichten hinzugefügt. Da wir einen Faktor von 10 als Stichproben verwendet haben, sollte das Beispielgewicht 10 betragen.

Konzeptionelles Diagramm für das Sampling und die Gewichtung von Videos Schritt 1: Durch das Sampling wird ein zufällig ausgewähltes Beispiel aus einem Block abgerufen, der das Dataset der Mehrheitsklasse darstellt. In Schritt 2 wird dem zufällig ausgewählten Beispiel eine Gewichtung hinzugefügt.

Es kann sein, dass Sie den Begriff Gewichtung kennen, wenn es sich um Modellparameter handelt, zum Beispiel um Verbindungen in einem neuronalen Netzwerk. Hier geht es um Beispielgewichtungen, d. h., ein einzelnes Beispiel wird während des Trainings wichtiger gezählt. Eine Beispielgewichtung von 10 bedeutet, dass das Modell das Beispiel als zehnmal (beim Computing-Verlust) behandelt wie ein Beispiel für Gewichtung 1.

Die Gewichtung sollte dem Faktor entsprechen, den Sie für die Verringerung der Daten verwendet haben:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

Vorteile von „Downsample“ und „Upweight“

Es mag seltsam erscheinen, nach dem Sampling Beispielgewichte hinzuzufügen. Wir haben versucht, unser Modell im Hinblick auf die Minderheitsklasse zu verbessern. Warum sollten wir einen Großteil der Mehrheit messen? Das sind die sich daraus ergebenden Änderungen:

  • Schnellere Konvergenz: Während des Trainings sehen wir die Klasse der Minderheit häufiger, sodass das Modell schneller konvergiert.
  • Laufwerksspeicher: Durch die Konsolidierung der Mehrheit der Klasse in weniger Beispiele mit höheren Gewichtungen wird weniger Speicherplatz benötigt. Diese Einsparungen ermöglichen mehr Speicherplatz für die Minderheitsklasse, sodass wir eine größere Anzahl und eine größere Auswahl von Beispielen aus dieser Klasse erfassen können.
  • Kalibrierung: Durch die Gewichtung bleibt unser Modell immer kalibriert. Die Ausgaben können trotzdem als Wahrscheinlichkeiten interpretiert werden.