In diesem Artikel wird besprochen, wie das SMOTE-Modul dabei hilft, unterrepräsentierte Zahlen im Datensatz eines Modells für maschinelles Lernen zu erhöhen. SMOTE ist die beste Methode, die es Ihnen ermöglicht, seltene Fälle zu erhöhen, anstatt die vorherigen zu duplizieren.
Wenn Sie einen unausgewogenen Datensatz haben, können Sie das Modell mit dem SMOTE-Modul verbinden. Es kann zahlreiche Gründe für einen unausgewogenen Datensatz geben. Vielleicht hat die Zielkategorie einen einzigartigen Datensatz in der Population, oder die Daten sind schwierig zu sammeln. Sie können die Hilfe von SMOTE in Anspruch nehmen, um die unterrepräsentierte Klasse zu analysieren. Die Ausgabe des Moduls enthält sowohl die ursprünglichen als auch zusätzliche Stichproben. Diese neuen Stichproben sind synthetische Minderheitenstichproben. Sie müssen die Anzahl dieser synthetischen Stichproben definieren, bevor Sie die Technik starten.

Was sind unausgewogene Daten?

Wenn die Datenklassifizierung nicht gleich ist, spricht man von unausgewogenen Daten. Es ist eine Klassifizierungsaufgabe und verursacht verschiedene Probleme in der Ausgabe des Modells. Sie haben z. B. 100 Fälle in einem binären Klassifizierungsproblem. Klasse-1 umfasst 80 markierte Instanzen. Die verbleibende markierte Probe befindet sich dagegen in Klasse-2. Dies ist ein einfaches Beispiel für einen unausgewogenen Datensatz. Das Verhältnis von Klasse-1- und Klasse-2-Instanzen würde 4:1 betragen.
Das Problem des Ungleichgewichts der Klassen ist sehr häufig, egal ob man über reale Testdatensätze oder Kaggle-Wettbewerbe spricht. Die realen Klassifizierungsprobleme werden ein gewisses Maß an Klassifizierungsungleichgewicht beinhalten. Dies geschieht normalerweise, wenn es keine geeigneten Dateninstanzen gibt, die in eine Klasse passen. Daher ist es wichtig, die richtige Bewertungsmetrik des Modells zu wählen. Wenn das Modell einen unausgewogenen Datensatz hat, wird Ihr Ergebnis unbrauchbar sein. Wenn Sie jedoch ein reales Problem mit diesem Modell lösen, wird das Ergebnis nutzlos sein.
In verschiedenen Situationen wird immer ein Klassenungleichgewicht auftreten. Ein gutes Beispiel ist, wenn Sie einen Datensatz mit betrügerischen und nicht betrügerischen Transaktionen betrachten. Sie werden weniger betrügerische Transaktionen als nicht-betrügerische Transaktionen finden. Dies ist der Punkt, an dem Sie Probleme finden werden.

Was ist SMOTE?

SMOTE ist eine Technik, die Sie für das Oversampling von Daten verwenden können. Bei dieser Technik werden neue synthetische Beispiele erstellt, anstatt Oversampling durch Ersetzungen durchzuführen. SMOTE führt synthetische Beispiele in den Liniensegmenten für das Oversampling der Minderheitsklassenproben ein. Es fügt alle k Minderheitenklassen zusammen, die nahe an den Nachbarn sind. Die Auswahl der k nächsten Nachbarn ist zufällig. Die Anzahl hängt von der Menge des Oversamplings ab, die das Modell benötigt.
Die primäre Funktion von SMOTE ist es, Minderheitenklassen zu konstruieren. Es gibt einen einfachen Algorithmus zur Bildung dieser Klassen. Wie Sie vielleicht wissen, kann die Bildung von sich wiederholenden Instanzen oder Oversampling ein Overfitting verursachen. Außerdem wird die Entscheidungsgrenze noch enger. Sie können das Problem lösen, indem Sie ähnliche Stichproben erzeugen, anstatt sie alle zu wiederholen. SMOTE generiert neu konstruierte Stichproben, die andere Merkmale als die vorherigen Stichproben haben. Daher wird die Entscheidungsgrenze weicher werden. Dies hilft dem Algorithmus, die genaue Hypothese zu schätzen. Im Folgenden finden Sie einige Vorteile von SMOTE:
– Die Informationen gehen nicht verloren.
– Diese Technik ist einfach, und Sie können sie leicht interpretieren und in das Modell implementieren.
– Es verbessert das Overfitting als synthetische Beispiele. Dies hilft dabei, neue Instanzen zu generieren, anstatt sie zu replizieren.

Wie löst man das Problem des Klassenungleichgewichts mit SMOTE?

SMOTE synthetisiert die neuen Minoritätsinstanzen ähnlich wie die realen Minoritätsinstanzen. Stellen Sie sich vor, dass es eine Linie zwischen bestehenden Instanzen gibt. SMOTE zeichnet diese Linien, um synthetische und neue Minoritätsinstanzen auf diesen Linien zu erzeugen.
library(smotefamily)
dat_plot = SMOTE(dat[,2:4], # Merkmalswerte
as.numeric(dat[,6]), # Klassenbeschriftungen
K = 6, dup_size =0) # Funktionsparameter
Sobald Sie den Syntheseprozess neuer Minoritätsinstanzen abgeschlossen haben, wird die Ausgabe das geringere Ungleichgewicht der Daten enthalten. Das Modell wird neue Instanzen mit Hilfe von SMOTE hinzufügen und die Klassen nivellieren.

Die Funktionsparameter von SMOTE

Dup_size und K sind die beiden Parameter von SMOTE (). Wenn Sie Dup_size und K verstehen wollen, müssen Sie den Arbeitsmechanismus von SMOTE () kennenlernen. SMOTE () arbeitet sich durch den Ausblick auf bestehende Instanzen und erzeugt zufällig neue. Die Funktion wird eine neue Instanz in einem gewissen Abstand zu ihrer Nachbarinstanz erzeugen. Es ist jedoch noch unklar, wie SMOTE () seine Nachbarn für jede erzeugte Minoritätsinstanz berücksichtigt
– Die Funktion berücksichtigt den nächstgelegenen Nachbarn bei K = 1.
– Die Funktion wird den nächsten und die nächsten Nachbarn bei K = 2 berücksichtigen.
Normalerweise führt SMOTE () eine Schleife durch die ursprüngliche Minoritätsinstanz durch. Während die Schleifeniteration eine einzelne Instanz ist, wird das Modell die neue Instanz zwischen der ursprünglichen Instanz und dem Nachbarn erstellen. Der Parameter dup_size gibt an, wie oft die Funktion SMOTE die ursprüngliche Instanz in einer Schleife durchlaufen wird. Bei dup_size = 1 synthetisiert das Modell z. B. nur vier neue Datenpunkte und so weiter.

Schlussfolgerung

Bei der Erstellung eines Vorhersagemodells beim maschinellen Lernen können Sie auf unausgewogene Datensätze stoßen. Diese Datensätze können das Ergebnis des Modells beeinflussen. Sie können dieses Problem durch Oversampling der Minderheitsdaten lösen. Anstatt also die Daten zu duplizieren, verwenden Sie die SMOTE-Technik und erstellen synthetische Daten für das Oversampling. Im Folgenden finden Sie einige Variationen von SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE