<EbeneX/>
Daten Grundlagen · Updated 3. März 2026

Imbalanced Data

Definition

Ein häufiges Problem in ML, wenn Klassen im Datensatz sehr ungleich verteilt sind – z.B. 99% normale Transaktionen, 1% Betrug. Erfordert spezielle Techniken.

Fortgeschritten 2 Min. Lesezeit EN: Imbalanced Data / Class Imbalance

Einfach erklärt

Imbalanced Data (unausgewogene Daten) liegt vor, wenn eine Klasse im Trainingsdatensatz deutlich häufiger vorkommt als andere. Ein Betrugserkennungs-Datensatz könnte 99% legitime Transaktionen und nur 1% Betrug enthalten. Ein Modell, das immer “legitim” vorhersagt, hätte 99% Accuracy – aber würde jeden Betrug übersehen. Imbalanced Data ist eines der häufigsten und tückischsten Probleme in realen ML-Projekten, weil Standard-Metriken wie Accuracy täuschen können.

Imbalanced Data bedeutet, dass Klassen sehr ungleich verteilt sind. Das Problem: Ein Modell kann “schummeln”, indem es einfach immer die häufigste Klasse vorhersagt.

Beispiel Fraud Detection:

Datensatz: 10.000 Transaktionen
- 9.900 legitim (99%)
- 100 Betrug (1%)

Dummes Modell: "Alles ist legitim"
-> Accuracy: 99% 🎉
-> Betrug erkannt: 0% 😱

Warum ist das ein Problem?

Uns interessiert gerade die seltene Klasse (Betrug, Krankheit, Anomalie). Ein Modell, das diese nie erkennt, ist nutzlos – trotz hoher Accuracy.

Technischer Deep Dive

Lösungsstrategien

StrategieBeschreibungWann nutzen
UndersamplingMehrheitsklasse reduzierenViele Daten
OversamplingMinderheitsklasse duplizierenWenige Daten
SMOTESynthetische Minority-SamplesWenige Daten
Class WeightsMinderheit stärker gewichtenImmer anwendbar
Threshold MovingEntscheidungsschwelle anpassenNach Training

SMOTE (Synthetic Minority Over-sampling)

from imblearn.over_sampling import SMOTE

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

# Vorher: 9900 legitim, 100 Betrug
# Nachher: 9900 legitim, 9900 Betrug (synthetisch)

Class Weights in Sklearn

from sklearn.ensemble import RandomForestClassifier

# Automatische Gewichtung
clf = RandomForestClassifier(class_weight='balanced')

# Oder manuell
clf = RandomForestClassifier(class_weight={0: 1, 1: 99})

Richtige Metriken

MetrikFormelWann nutzen
PrecisionTP / (TP + FP)Wenn False Positives teuer
RecallTP / (TP + FN)Wenn False Negatives teuer
F12 × (P × R) / (P + R)Balance zwischen P und R
AUC-ROCArea under ROCGesamtperformance
PR-AUCArea under PR CurveBei starker Imbalance

Imbalanced Data ist wie eine Schule mit 99 Rechtshändern und 1 Linkshänder: Ein Modell, das einfach 'Rechtshänder' rät, hat 99% Accuracy – aber es hat nichts gelernt.

Klassen sind sehr ungleich verteilt (z.B. 99:1)

Standard-Accuracy ist irreführend – Modell lernt nur Mehrheitsklasse

Lösungen: Resampling, Gewichtung, spezielle Metriken

Fraud Detection

99.9% legitime Transaktionen, 0.1% Betrug

Medizinische Diagnose

Seltene Krankheiten erkennen

Anomalieerkennung

Wenige Anomalien in vielen normalen Daten

Warum ist Accuracy bei Imbalanced Data schlecht?

Bei 99:1 Verteilung erreicht ein Modell, das immer 'Mehrheitsklasse' sagt, 99% Accuracy – ohne etwas gelernt zu haben. Precision, Recall und F1 sind aussagekräftiger.

Was ist besser: Oversampling oder Undersampling?

Kommt auf die Datenmenge an. Undersampling bei vielen Daten (verliert Information). Oversampling/SMOTE bei wenigen Daten (kann Overfitting verursachen). Oft ist Class Weighting der einfachste Ansatz.

Wie stark darf die Imbalance sein?

Ab etwa 10:1 wird es problematisch, ab 100:1 kritisch. Aber es hängt auch von der Gesamtdatenmenge ab – 1000 Minority-Samples sind besser als 10, auch bei gleicher Ratio.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.