SMOTE

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Erhöht die Anzahl der Beispiele mit geringem Vorkommen in einem Dataset mit synthetischer Minderheitsüberquotierung

Kategorie: Datentransformation/-bearbeitung

Hinweis

Gilt nur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das SMOTE-Modul in Machine Learning Studio (klassisch) verwenden, um die Anzahl der unterrepräsentierten Fälle in einem Dataset zu erhöhen, das für maschinelles Lernen verwendet wird. SMOTE bietet eine bessere Möglichkeit, die Anzahl von seltenen Fälle zu erhöhen, statt einfach vorhandene Fälle zu duplizieren.

Sie verbinden das SMOTE-Modul mit einem Dataset, das unausgeglichen ist. Es gibt viele Gründe, warum ein Dataset unausgewogen sein kann: Die Kategorie, die Sie als Ziel verwenden, ist in der Grundauffüllung möglicherweise sehr selten, oder die Daten lassen sich nur schwer erfassen. In der Regel verwenden Sie SMOTE, wenn die Klasse, die Sie analysieren möchten, unterrepräsentiert ist.

Das Modul gibt ein Dataset zurück, das die ursprünglichen Stichproben sowie, abhängig von dem von Ihnen angegebenen Prozentsatz, eine zusätzliche Anzahl von synthetischen Minderheitsstichproben enthält.

Weitere Informationen zu SMOTE

SMOTE steht für Synthetic Minority Oversampling Technique. Dies ist ein statistisches Verfahren, bei dem die Anzahl von Fällen in einem Dataset in ausgeglichener Weise erhöht wird. Das Modul geht so vor, dass es neue Instanzen aus vorhandenen Minderheitsfällen erstellt, die Sie als Eingabe bereitstellen. Bei dieser Implementierung von SMOTE werden keine Änderungen an der Anzahl von Mehrheitsfällen vorgenommen.

Die neuen Instanzen sind nicht einfach Kopien von vorhandenen Minderheitsfällen. Stattdessen werden im Algorithmus Stichproben des Merkmalsraums für jede Zielklasse und deren nächste Nachbarn verwendet und neue Beispiele generiert, in denen Merkmale des Zielfalls mit Merkmalen seiner Nachbarn kombiniert sind. Dieser Ansatz erhöht die für jede Klasse verfügbaren Merkmale und macht die Stichproben allgemeiner.

SMOTE übernimmt das gesamte Dataset als Eingabe, erhöht aber nur den Prozentsatz der Minderheitsfälle. Nehmen Sie beispielsweise an, Sie haben ein unausgewogenes Dataset, in dem nur 1 % der Fälle den Zielwert A (die Minderheitsklasse) und 99 % der Fälle den Wert B haben. Wenn Sie den Prozentsatz der Minderheitsfälle auf das Doppelte des vorherigen Prozentsatzes erhöhen möchten, geben Sie in den Eigenschaften des Moduls den Wert „200“ für SMOTE percentage (SMOTE-Prozentsatz) ein.

Beispiele

Es wird empfohlen, dass Sie versuchen, SMOTE mit einem kleiner Dataset zu verwenden, um seine Funktionsweise kennenzulernen. Im folgenden Beispiel wird das in Machine Learning Studio (klassisch) verfügbare Dataset "Blood Auslassungshilfe" verwendet.

Wenn Sie das Dataset einem Experiment hinzufügen und in der Ausgabe des Datasets auf Visualisieren klicken, können Sie sehen, dass von den 748 Zeilen oder Fällen im Dataset 570 Fälle (76 %) der Klasse 0 und 178 Fälle (24 %) der Klasse 1 vorhanden sind. Obwohl dies nicht übermäßig unausgeglichen ist, entspricht Klasse 1 den Personen, die Blut gespendet haben. Daher enthalten diese Zeilen den Merkmalsraum, den Sie modellieren möchten.

Um die Anzahl der Fälle zu erhöhen, können Sie den Wert von SMOTE percentage wie folgt mit Vielfachen von 100 festlegen:

Klasse 0 Klasse 1 total
Ursprüngliches Dataset

(entspricht SMOTE percentage = 0)
570

76 %
178

24 %
748
SMOTE percentage = 100 570

62 %
356

38 %
926
SMOTE percentage = 200 570

52 %
534

48 %
1104
SMOTE percentage = 300 570

44 %
712

56 %
1282

Warnung

Das Erhöhen der Anzahl von Fällen über SMOTE garantiert nicht, dass genauere Modelle erzeugt werden. Experimentieren Sie mit verschiedenen Prozentsätzen, unterschiedlichen Funktionsumfängen und unterschiedlicher Anzahl von nächsten Nachbarn, um zu sehen, wie das Hinzufügen von Fällen Ihr Modell beeinflusst.

Konfigurieren von SMOTE

  1. Fügen Sie ihrem Experiment das SMOTE-Modul hinzu. Sie finden das Modul in der Kategorie „Manipulation“ (Bearbeitung) in den zu „Data Transformation“ (Datentransformation) gehörenden Modulen.

  2. Stellen Sie eine Verbindung mit dem Dataset her, das Sie vergrößern möchten. Wenn Sie den Merkmalsraum für das Erstellen der neuen Fälle angeben möchten, entweder indem nur bestimmte Spalten verwendet oder einige ausgeschlossen werden, verwenden Sie das Modul Select Columns in Dataset (Spalten im Datensatz auswählen), um die Spalten zu isolieren, die Sie verwenden möchten, bevor Sie SMOTE verwenden.

    Andernfalls erfolgt die Erstellung neuer Fälle über SMOTE mit allen Spalten, die Sie als Eingaben bereitstellen.

  3. Stellen Sie sicher, dass die Spalte, die die Bezeichnung oder Zielklasse enthält, als solche gekennzeichnet ist.

    Wenn keine Bezeichnungsspalte vorhanden ist, wählen Sie mithilfe des Moduls Edit Metadata (Metadaten bearbeiten ) die Spalte aus, die die Klassenbezeichnungen enthält, und wählen Sie label ( Bezeichnung ) aus der Dropdownliste Felder aus.

  4. Das SMOTE-Modul identifiziert automatisch die Minderheitsklasse in der Bezeichnungsspalte und ruft dann alle Beispiele für die Minderheitsklasse ab.

  5. Geben Sie für die Option SMOTE percentage eine ganze Zahl ein, die den Zielprozentsatz der Minderheitsfälle im Ausgabedataset angibt. Beispiel:

    • Sie geben 0 (%) ein. Das SMOTE-Modul gibt genau das Dataset zurück, das Sie als Eingabe bereitgestellt haben. Es wurden keine neuen Minderheitsfälle hinzugefügt. In diesem Dataset hat sich das Verhältnis der Klassen nicht geändert.

    • Sie geben 100 (%) ein. Das SMOTE-Modul generiert neue Minderheitsfälle, indem es genau so viele Minderheitsfälle hinzufügt, wie im ursprünglichen Dataset vorhanden sind. Da SMOTE die Anzahl der Mehrheitsfälle nicht erhöht, hat sich der Anteil der Fälle jeder Klasse geändert.

    • Sie geben 200 (%) ein. Das Modul verdoppelt den Prozentsatz der Minderheitsfälle im Vergleich zum ursprünglichen Dataset. Dies führt nicht dazu, dass nun die doppelte Anzahl von Minderheitsfällen vorliegt. Stattdessen wird die Größe des Datasets so erhöht, dass die Anzahl der Mehrheitsfälle gleich bleibt und die Anzahl der Minderheitsfälle erhöht wird, bis sie dem gewünschten Prozentwert entspricht.

    Hinweis

    Verwenden Sie für den SMOTE-Prozentsatz nur Vielfache von 100.

  6. Verwenden Sie die Option Number of nearest neighbors (Anzahl der nächsten Nachbarn), um die Größe des Merkmalsraums zu bestimmen, den der SMOTE-Algorithmus für das Erstellen neuer Fälle verwenden soll. Ein nächster Nachbar ist eine Zeile mit Daten (ein Fall), die einem Zielfall sehr ähnlich sind. Der Abstand zwischen zwei Fällen wird gemessen, indem die gewichteten Vektoren aller Merkmale (Features) kombiniert werden.

    • Durch Erhöhen der Anzahl der nächsten Nachbarn erhalten Sie Merkmale von mehr Fällen.
    • Belassen Sie es bei einer kleinen Anzahl der nächsten Nachbarn, verwenden Sie Merkmale, die eher denen in der ursprünglichen Stichprobe ähneln.
  7. Geben Sie im Textfeld Random seed (Zufälliger Ausgangswert) einen Wert ein, wenn Sie bei Ausführungen desselben Experiments mit denselben Daten die gleichen Ergebnisse sicherstellen möchten. Andernfalls generiert das Modul einen zufälligen Ausgangswert basierend auf prozessorbasierten Uhrwerten, wenn das Experiment bereitgestellt wird. Dies kann bei Ausführungen zu geringfügig unterschiedlichen Ergebnissen führen.

  8. Führen Sie das Experiment aus.

    Die Ausgabe des Moduls ist ein Dataset, das die ursprünglichen Zeilen sowie eine Reihe von hinzugefügten Zeilen mit Minderheitsfällen enthält.

Tipp

Wenn Sie herausfinden möchten, welche neuen Zeilen hinzugefügt wurden, können Sie die Module Apply SQL Transformation oder Join Data verwenden.

Technische Hinweise

  • Wenn Sie ein Modell veröffentlichen, das das SMOTE-Modul verwendet, entfernen Sie SMOTE aus dem Vorhersageexperiment, bevor es als Webdienst veröffentlicht wird. Der Grund dafür ist, dass SMOTE zum Verbessern eines Modells während des Trainings und nicht für Bewertungen vorgesehen ist. Möglicherweise erhalten Sie einen Fehler, wenn ein veröffentlichtes Vorhersageexperiment das SMOTE-Modul enthält.

  • Sie können häufig bessere Ergebnisse erzielen, indem Sie Bereinigen fehlender Werte oder andere Transformationen anwenden, um Daten vor dem Anwenden von SMOTE zu korrigieren.

  • Einige Forscher haben untersucht, ob SMOTE für Daten mit vielen Dimensionen oder Daten mit geringer Dichte geeignet ist, etwa Daten, die in Textklassifizierungs- oder Genomikdatasets verwendet werden. Dieses Dokument enthält eine gute Zusammenfassung der Auswirkungen und der theoretischen Gültigkeit der Anwendung von SMOTE in solchen Fällen: Blagus und Lusa: SMOTE für hochdimensionale Daten mit unausgeglichenen Klassen.

    Wenn SMOTE in Ihrem Dataset nicht wirksam ist, sollten Sie andere Ansätze in Betracht ziehen. Dazu gehören verschiedene Methoden zur Überquotierung der Minderheitsfälle oder zur Unterquotierung der Mehrheitsfälle sowie Kombinationstechniken, die dem Lernenden direkt helfen, indem sie Clustering, Bagging oder adaptives Boosting verwenden.

Erwartete Eingabe

Name Type BESCHREIBUNG
Beispiele Datentabelle Ein Dataset mit Beispielen

Modulparameter

Name Range type Standard Beschreibung
SMOTE-Prozentsatz >=0 Integer 100 Umfang an Oversampling in Vielfachen von 100
Anzahl der nächsten Nachbarn >=1 Integer 1 Die Anzahl von nächsten Nachbarn, aus denen die Merkmale für neue Fälle geholt werden sollen.
Random seed (Zufälliger Ausgangswert) Any Integer 0 Ausgangswert für den Zufallszahlengenerator

Output

Name Type Beschreibung
Tabelle Datentabelle Eine Datentabelle , die die ursprünglichen Stichproben sowie eine zusätzliche Anzahl synthetischer Minderheitsklassenbeispiele enthält. Die Anzahl der neuen Beispiele ist (Smote-Prozentsatz/100)*T, wobei T die Anzahl der Minderheitsklassenbeispiele ist.

Siehe auch

Sample and Split
Modulliste von A bis Z