Datasets: Unausgeglichene Datasets

Angenommen, ein Datensatz enthält ein kategorisches Label, dessen Wert entweder Positiv oder Negativ ist. In einem ausgewogenen Dataset ist die Anzahl der Positiven und Negativen Labels ungefähr gleich. Wenn ein Label jedoch häufiger vorkommt als das andere, ist das Dataset nicht ausgewogen. Das vorherrschende Label in einem unbalancierten Datensatz wird als Mehrheitsklasse bezeichnet. Das weniger häufige Label wird als Minderheitsklasse bezeichnet.

In der folgenden Tabelle finden Sie allgemein anerkannte Namen und Bereiche für verschiedene Ungleichgewichte:

Prozentsatz der Daten, die zur Minderheitsklasse gehören Grad des Ungleichgewichts
20–40% des Datasets Niedrig
1–20% des Datasets Mittel
< 1% des Datasets Extrem

Angenommen, Sie haben ein Dataset zur Virenerkennung, in dem die Minderheitenklasse 0,5% des Datasets und die Mehrheitsklasse 99,5 % ausmacht. Extrem unausgewogene Datensätze wie dieser sind in der Medizin üblich, da die meisten Testpersonen nicht infiziert sind.

Abbildung 5: Balkendiagramm mit zwei Balken Ein Balken zeigt etwa 200 negative Klassen, der andere Balken eine positive Klasse.
Abbildung 5: Extrem unausgeglichenes Dataset.

 

Ungleichgewichtige Datasets enthalten manchmal nicht genügend Beispiele der Minderheitenklasse, um ein Modell richtig zu trainieren. Das bedeutet, dass das Modell bei so wenigen positiven Labels fast ausschließlich mit negativen Labels trainiert wird und nicht genug über positive Labels lernen kann. Wenn die Batchgröße beispielsweise 50 beträgt, enthalten viele Batches keine positiven Labels.

Oft ist eine Ungleichverteilung kein Problem, insbesondere bei leicht und mäßig ungleich verteilten Datensätzen. Sie sollten also zuerst mit dem ursprünglichen Datensatz trainieren. Wenn das Modell gut funktioniert, sind Sie fertig. Andernfalls bietet das suboptimale Modell zumindest eine gute Baseline für zukünftige Tests. Anschließend können Sie die folgenden Methoden ausprobieren, um Probleme zu beheben, die durch ungleichmäßige Datensätze verursacht werden.

Downsampling und Upweighting

Eine Möglichkeit, mit einem unausgewogenen Dataset umzugehen, besteht darin, die Stichprobe zu verkleinern und die Mehrheitsklasse zu gewichten. Hier sind die Definitionen dieser beiden neuen Begriffe:

  • Downsampling bedeutet in diesem Zusammenhang, dass das Training auf einer unverhältnismäßig kleinen Teilmenge der Beispiele der Mehrheitsklasse erfolgt.
  • Aufgewichten bedeutet, der herunterskalierten Klasse ein Beispielgewicht hinzuzufügen, das dem Faktor entspricht, um den Sie die Stichprobe herunterskaliert haben.

Schritt 1: Mehrheitsklasse herunterskalieren Betrachten Sie den in Abbildung 5 dargestellten Virendatensatz mit einem Verhältnis von 1 positivem Label zu 200 negativen Labels. Durch eine zehnfache Downsampling wird das Gleichgewicht auf 1 Positiv zu 20 Negativ (5%) verbessert. Obwohl das resultierende Trainingsset immer noch mäßig ungleichgewichtig ist, ist das Verhältnis von positiven zu negativen Beispielen viel besser als das ursprüngliche extrem ungleichgewichtige Verhältnis (0,5%).

Abbildung 6. Balkendiagramm mit zwei Balken Ein Balken zeigt 20 negative Klassen, der andere Balken eine positive Klasse.
Abbildung 6: Downsampling.

 

Schritt 2: Gewicht der herunterskalierten Klasse erhöhen: Fügen Sie der herunterskalierten Klasse Beispielgewichte hinzu. Nach der Downsampling-Verfahren mit einem Faktor von 10 sollte das Beispielgewicht 10 betragen. Das mag auf den ersten Blick widersprüchlich erscheinen, aber wir erklären das später.

Abbildung 7. Ein zweistufiges Diagramm mit Downsampling und Aufgewichtung.
            Schritt 1: Beim Downsampling werden zufällige Beispiele aus der Mehrheitsklasse extrahiert. Schritt 2: Durch die Gewichtung werden den herunterskalierten Beispielen mehr Gewicht beigemessen.
Abbildung 7: Gewichtung erhöhen

 

Der Begriff Gewicht bezieht sich nicht auf Modellparameter wie w1 oder w2. Hier bezieht sich Gewicht auf Beispielgewichte, die die Bedeutung eines einzelnen Beispiels während des Trainings erhöhen. Ein Beispielgewicht von 10 bedeutet, dass das Modell das Beispiel bei der Berechnung des Verlusts als zehnmal so wichtig behandelt wie ein Beispiel mit dem Gewicht 1.

Der Wert für weight sollte dem Faktor entsprechen, den Sie für die Downsampling-Operation verwendet haben:

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

Es mag seltsam erscheinen, Beispielgewichte nach dem Downsampling hinzuzufügen. Schließlich möchten Sie, dass das Modell die Leistung bei der Minderheitsklasse verbessert. Warum sollten Sie also die Mehrheitsklasse gewichten? Tatsächlich verringert eine höhere Gewichtung der Mehrheitsklasse in der Regel den Vorhersagebias. Das heißt, dass eine Aufwertung nach dem Downsampling in der Regel das Delta zwischen dem Durchschnitt der Vorhersagen Ihres Modells und dem Durchschnitt der Labels Ihres Datensatzes verringert.

Proportionen für den Neuausgleich

Wie stark sollten Sie die Stichprobe verkleinern und die Gewichtung erhöhen, um den Datensatz auszugleichen? Um die Antwort zu ermitteln, sollten Sie mit dem Verhältnis für die Neuausrichtung experimentieren, genau wie Sie es mit anderen Hyperparametern tun würden. Die Antwort hängt jedoch letztendlich von den folgenden Faktoren ab:

  • Batchgröße
  • Das Ungleichgewichtsverhältnis
  • Die Anzahl der Beispiele im Trainingssatz

Idealerweise sollte jeder Batch mehrere Beispiele der Minderheitenklasse enthalten. Bei Batches, die nicht genügend Minderheitenklassen enthalten, ist das Training sehr schlecht. Die Batchgröße sollte mehrmals größer als das Ungleichgewichtsverhältnis sein. Wenn das Ungleichgewicht beispielsweise 100:1 beträgt, sollte die Batchgröße mindestens 500 betragen.

Übung: Wissen testen

Stellen Sie sich folgende Situation vor:

  • Der Trainingssatz enthält etwas mehr als eine Milliarde Beispiele.
  • Die Batchgröße beträgt 128.
  • Das Ungleichgewichtsverhältnis beträgt 100:1. Daher wird der Trainingssatz so aufgeteilt:
    • ~ 1 Milliarde Beispiele für die Mehrheitsklasse
    • ~ 10 Millionen Beispiele für Minderheitenklassen
Welche der folgenden Aussagen sind wahr?
Wenn Sie die Batchgröße auf 1.024 erhöhen,wird das resultierende Modell verbessert.
Bei einer Batchgröße von 1.024 enthält jeder Batch durchschnittlich etwa 10 Beispiele der Minderheitenklasse. Das sollte dazu beitragen, ein viel besseres Modell zu trainieren.
Wenn Sie die Batchgröße bei 128 beibehalten, aber eine Downsampling- und Gewichtung auf 20:1 vornehmen, wird das resultierende Modell verbessert.
Durch das Downsampling enthält jeder Batch mit 128 Elementen durchschnittlich etwa 21 Beispiele für die Minderheitenklasse. Das sollte für das Training eines nützlichen Modells ausreichen. Durch die Downsampling-Methode wird die Anzahl der Beispiele im Trainingssatz von etwas über einer Milliarde auf etwa 60 Millionen reduziert.
Die aktuellen Hyperparameter sind in Ordnung.
Bei einer Batchgröße von 128 enthält jeder Batch durchschnittlich etwa ein Beispiel für eine Minderheitenklasse. Das ist möglicherweise nicht ausreichend, um ein nützliches Modell zu trainieren.