SMOTE

Wie SMOTE Minderheitsklassen im Training verdichtet – und warum dieses Werkzeug nur innerhalb einer sauberen Evaluationspipeline sinnvoll ist.

Eine Technik zur Erzeugung synthetischer Datenpunkte für unterrepräsentierte Klassen – löst das Problem unbalancierter Datensätze im ML.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Erzeugt synthetische Samples für Minderheitsklasse
  2. Interpoliert zwischen existierenden Datenpunkten
  3. Besser als einfaches Duplizieren

Sofortantwort

SMOTE einfach erklärt

Synthetische Datenpunkte für unterrepräsentierte Klassen erzeugen.

Kurz gesagt
Erzeugt synthetische Samples für Minderheitsklasse
Typischer Einsatz
Fraud Detection, Medizinische Diagnose, Churn Prediction
Wichtig zu wissen
Besser als einfaches Duplizieren

SMOTE im Überblick

SMOTE erzeugt synthetische Datenpunkte für die Minderheitsklasse durch Interpolation.

Vorher (imbalanced):
Klasse 0: ●●●●●●●●●● (1000)
Klasse 1: ●● (20)

Nach SMOTE:
Klasse 0: ●●●●●●●●●● (1000)
Klasse 1: ●●●●●●●●●● (1000, davon 980 synthetisch)

Technisch betrachtet

Algorithmus

from imblearn.over_sampling import SMOTE

smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X, y)

# So funktioniert es:
# 1. Wähle Sample aus Minderheitsklasse
# 2. Finde k nächste Nachbarn (gleiche Klasse)
# 3. Wähle zufällig einen Nachbarn
# 4. Erzeuge neuen Punkt auf Linie zwischen beiden

Varianten

VarianteBeschreibung
SMOTEStandard-Interpolation
SMOTE-NCFür kategorische Features
Borderline-SMOTEFokus auf Grenzfälle
ADASYNAdaptiv, mehr Samples in schwierigen Regionen

Mathematische Intuition

Der neue Punkt entsteht durch lineare Interpolation zwischen einem Sample der Minderheitsklasse und einem seiner nächsten Nachbarn:

x_neu = x_i + λ × (x_nachbar - x_i)    mit λ ∈ [0, 1]

Der Zufallsfaktor λ bestimmt, wo auf der Verbindungslinie der synthetische Punkt liegt. Bei λ = 0 entspricht er dem Original, bei λ = 1 dem Nachbarn. Dadurch liegen alle synthetischen Punkte innerhalb der konvexen Hülle der vorhandenen Minderheits-Samples – SMOTE erfindet also keine völlig neuen Regionen, sondern verdichtet den bereits abgedeckten Bereich.

Der häufigste Fehler: SMOTE vor dem Split

Wer SMOTE auf den gesamten Datensatz anwendet und erst danach in Trainings- und Testdaten aufteilt, erzeugt Data Leakage: Synthetische Punkte im Testset wurden aus Trainingspunkten interpoliert (und umgekehrt). Die gemessene Performance ist dann zu optimistisch. Richtig ist: erst splitten, dann SMOTE ausschließlich auf die Trainingsdaten anwenden – das Testset bleibt unangetastet und behält die reale Klassenverteilung.

from imblearn.pipeline import Pipeline
from imblearn.over_sampling import SMOTE
from sklearn.linear_model import LogisticRegression

# Pipeline wendet SMOTE nur beim Fitten an, nie beim Predicten
pipe = Pipeline([
    ("smote", SMOTE(random_state=42)),
    ("clf", LogisticRegression())
])
pipe.fit(X_train, y_train)

Die imblearn-Pipeline sorgt auch bei Cross-Validation dafür, dass Oversampling in jedem Fold nur auf den Trainingsanteil angewendet wird.

SMOTE vs. Alternativen

AnsatzIdeeWann sinnvoll
SMOTESynthetische Minderheits-SamplesMittlere Imbalance, numerische Features
Random OversamplingMinderheit duplizierenSchnelle Baseline, Overfitting-Risiko
UndersamplingMehrheit reduzierenSehr große Datensätze
Class WeightsFehlklassifikation der Minderheit stärker gewichtenOhne Datenmanipulation, von vielen Modellen direkt unterstützt

In der Praxis lohnt es sich, zuerst Class Weights (z. B. class_weight="balanced" in scikit-learn) zu testen – oft reicht das bereits und die Pipeline bleibt einfacher. SMOTE spielt seine Stärke aus, wenn das Modell von zusätzlicher Dichte im Feature-Raum der Minderheitsklasse profitiert.

Grenzen des Verfahrens

SMOTE interpoliert rein geometrisch und kennt die Semantik der Daten nicht. Bei verrauschten Labels erzeugt es synthetische Punkte um falsch gelabelte Beispiele herum und verstärkt so das Rauschen. In hochdimensionalen Räumen verlieren Nachbarschaftsbeziehungen an Aussagekraft, und bei kategorischen Features ist die Standard-Interpolation nicht definiert – hier braucht es SMOTE-NC oder SMOTEN. Für Zeitreihen ist SMOTE ungeeignet, weil interpolierte Punkte die zeitliche Struktur zerstören.

Schritt für Schritt

SMOTE kontrolliert anwenden

SMOTE erzeugt synthetische Trainingsbeispiele zwischen vorhandenen Fällen. Es kann helfen, ersetzt aber weder echte Daten noch eine sorgfältige Prüfung von Labels und Datengeometrie.

  1. Eignung der Daten prüfen

    01

    Untersuche Datenmenge, Feature-Typen, Labelqualität und ob Nähe im Merkmalsraum fachlich sinnvoll interpretierbar ist.

    Minderheitsfälle + Merkmalsraum + Labelqualität
  2. Trainings- und Testdaten zuerst trennen

    02

    Das Testset bleibt unverändert und realistisch; SMOTE darf ausschließlich innerhalb des Trainingsanteils stattfinden.

    Split → SMOTE nur auf Training → echtes Testset
  3. Baseline ohne Synthese messen

    03

    Vergleiche zunächst Modelle mit Klassengewichten oder anderen einfachen Maßnahmen gegen die echte Testverteilung.

    Baseline → Precision / Recall → Fehlerprofil
  4. SMOTE-Variante in der Pipeline testen

    04

    Wähle passende Nachbarn und Varianten für Feature-Typen und führe Sampling nur in den jeweiligen Trainings-Folds aus.

    Pipeline: SMOTE → Modell | Cross-Validation
  5. Ergebnis und künstliche Fälle kritisch prüfen

    05

    Bewerte, ob Leistung wirklich verbessert wird und ob synthetische Beispiele plausible Bereiche verdichten statt Rauschen zu verstärken.

    synthetische Punkte → Evaluation → Review → Entscheidung

Konkretes Beispiel

Beispiel: Seltene Abweichungen in tabellarischen Daten

Ein Klassifikator soll seltene, geprüfte Abweichungen besser erkennen, die Eingaben bestehen überwiegend aus numerischen Merkmalen.

Trainingsfrage

Reichen Klassengewichte aus, oder profitiert das Modell nachweisbar von zusätzlichen synthetischen Punkten zwischen ähnlichen Minderheitsfällen?

Sauberer Vergleich

Beide Varianten werden in derselben Cross-Validation geprüft; das finale Testset bleibt unangetastet und die Fehlerprofile werden nebeneinander bewertet.

SMOTE ist eine überprüfbare Hypothese im Trainingsprozess – keine Garantie, dass seltene Fälle dadurch im Einsatz besser behandelt werden.

Einordnung

Vorteile und Grenzen

Das spricht dafür

  • Mehr Dichte im Training: Modelle können Muster der Minderheitsklasse besser sehen als bei reinem Duplizieren.
  • Keine Mehrheitsdaten entfernen: Im Unterschied zu Undersampling bleibt die vorhandene Information erhalten.
  • Gut vergleichbar: Als Pipeline-Schritt lässt sich SMOTE gegen einfache Baselines transparent evaluieren.

Das solltest du beachten

  • Verstärkt Rauschen: Fehlerhafte Labels oder Ausreißer der Minderheitsklasse können synthetisch vervielfacht werden.
  • Nicht für alle Daten: Zeitreihen, kategorische Merkmale und hochdimensionale Räume brauchen besondere Vorsicht oder andere Methoden.
  • Leakage-Risiko: Sampling vor dem Split oder außerhalb einer Cross-Validation verfälscht die Bewertung.
Vertiefung · für Fortgeschrittene

SMOTE innerhalb der Trainingspipeline

Die Synthese beeinflusst nur das Lernen; die realen Testdaten bleiben der Maßstab für die spätere Qualitätsaussage.

Wissenskarte

Synthetische Minderheitsbeispiele zwischen ähnlichen Trainingsfällen.

Die korrekte Platzierung schützt vor Data Leakage und macht den tatsächlichen Nutzen von SMOTE überprüfbar. SMOTE gliedert sich in: Trainingssplit, Nachbarn, Synthetische Punkte, Modell, Cross-Validation, Reales Testset.

01Einsatzbereiche

Wann ist SMOTE sinnvoll?

Geeignet für

  • Fraud DetectionWenige Fraud-Fälle vs. viele normale
  • Medizinische DiagnoseSeltene Krankheiten erkennen
  • Churn PredictionWenige Churner vs. viele Bleibende

↑ Inhalt

Merksatz

SMOTE ist wie das Klonen von seltenen Pflanzen

Statt nur die wenigen Exemplare zu nutzen, erzeugst du ähnliche Varianten, um eine ausgewogene Population zu bekommen.

  1. Erzeugt synthetische Samples für Minderheitsklasse
  2. Interpoliert zwischen existierenden Datenpunkten
  3. Besser als einfaches Duplizieren

03Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

04FAQ

Häufige Fragen zu SMOTE

SMOTE vs. Undersampling?

SMOTE: Mehr Daten für Minderheit. Undersampling: Weniger Daten für Mehrheit. SMOTE verliert keine Information, Undersampling ist schneller.

Wann SMOTE nicht nutzen?

Bei sehr kleiner Minderheit (zu wenig für Interpolation), bei hochdimensionalen Daten (Curse of Dimensionality), bei Zeitreihen.

↑ Inhalt

05Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Imbalanced Data

    Ungleiche Klassenverteilung in Trainingsdaten.

  • Technisch vertiefen

    Machine Learning

    Algorithmen, die aus Daten lernen und Vorhersagen treffen.

↑ Inhalt