14  Klassifikation

14.1 Was ist Klassifikation?

Klassifikation bezeichnet den Prozess, bei dem ein Modell lernt, Datenpunkte basierend auf ihren Merkmalen einer oder mehreren Klassen zuzuordnen. Im Kontext neuronaler Netzwerke wird dies durch die Vorhersage von Wahrscheinlichkeiten oder Kategorien erreicht.

Beispiele: Ein E-Mail-Filter klassifiziert Nachrichten als “Spam” oder “Nicht-Spam”; ein Bilderkennungsmodell ordnet Fotos Tieren zu (z. B. “Katze”, “Hund”).

14.2 Arten der Klassifikation

Neuronale Netzwerke können verschiedene Formen der Klassifikation handhaben, abhängig von der Anzahl der Klassen.

14.2.1 Binäre Klassifikation

Bei der binären Klassifikation gibt es genau zwei Klassen (z. B. “ja/nein”, “positiv/negativ”). Die Ausgabeschicht besteht aus einem einzigen Neuron, das eine Wahrscheinlichkeit für eine Klasse berechnet.

  • Aktivierungsfunktion: Typischerweise verwendet man für die binäre Klassifikation die Sigmoid-Funktion, die Werte zwischen 0 und 1 ausgibt:

\[ \sigma(z) = \dfrac{1}{1+{e^{-z}}} \]

14.2.2 Multiklassen-Klassifikation (Multiclass Classification)

Bei mehr als zwei möglichen Klassen spricht man von einer Multiklassen-Klassifikation, bei der jedes Objekt genau einer von mehreren sich gegenseitig ausschließenden Klassen zugeordnet wird.

  • Aktivierungsfunktion: Hier wird üblicherweise die Softmax-Funktion verwendet. Diese stellt sicher, dass die Summe aller Ausgabewahrscheinlichkeiten genau 1 beträgt. Sei \(K\) die Anzahl der Klassen, dann ist die Softmax-Funktion wie folgt definiert:

\[ \mathrm{softmax}(z_i) = \dfrac{e^{z_i}}{\sum_{j=1}^k{e^{z_j}}} \]

14.2.3 Multilabel-Klassifikation

Bei der Multilabel-Klassifikation handelt es sich um eine Erweiterung der Multillassen-Klassifikation, bei der ein Datensatz mehreren Klassen gleichzeitig zugeordnet werden kann (Beispiel: Tags für ein Bild: “Strand” und “Sonne”).

  • Aktivierungsfunktion: Wie bei der binären Klassifikation verwendet man hier zumeist die Sigmoid-Funktion:

\[ \sigma(z) = \dfrac{1}{1+{e^{-z}}} \]

14.3 Eingaben

Je nach Art der Eingabedaten sind unterschiedliche Vorverarbeitungsschritte möglich (und teils auch notwendig), um die Konvergenz des Modells zu gewährleisten und mathematische Fehlinterpretationen zu vermeiden.

14.3.1 Numerische Merkmale

Numerische Daten liegen bereits in mathematisch verarbeitbarer Form vor. Dennoch ist eine Skalierung essenziell, um zu verhindern, dass Merkmale mit großen Wertebereichen den Gradienten des Netzwerks dominieren.

  • Standardisierung (Z-Score Normalisierung): Transformiert Daten so, dass sie einen Mittelwert von \(0\) und eine Varianz von \(1\) aufweisen. Sei \(\mu\) der Mittelwert der Daten und \(\sigma\) die Standardabweichung, dann berechnet sich der Z-Score:

\[ z = \dfrac{x - \mu}{\sigma} \]

  • Min-Max-Skalierung: Skaliert die Werte in ein festes Intervall, üblicherweise \([0, 1]\):

\[ X_{\mathrm{ scaled}} = \dfrac{X - X_{\min}}{X_{\max} - X_{\min}} \]

14.3.2 Kategorische Merkmale (Nominal)

Kategorische Merkmale ohne inhärente Rangfolge (z. B. Postleitzahlen, Farben, Gerätetypen) sollten nicht direkt als Ganzzahlen kodiert werden, da das Netzwerk sonst eine falsche mathematische Distanz oder Ordnung interpretieren würde.

  • One-Hot-Encoding: Jede Kategorie wird in einen binären Vektor transformiert. Ein Merkmal mit \(n\) Kategorien wird zu \(n\) neuen Eingangsneuronen, wobei jeweils nur das der Kategorie entsprechende Neuron den Wert \(1\) annimmt.

    Beispiel: Wenn ein Eingabefeature „Farbe“ die Werte {rot, blau, grün} annehmen kann, führt dies zu drei Eingängen:

    Farbe rot blau grün
    rot 1 0 0
    blau 0 1 0
  • Multi-Hot-Encoding: Mehrere Einträge des Vektors können gleichzeitig den Wert \(1\) annehmen. Dies wird verwendet, wenn ein Objekt mehreren Kategorien gleichzeitig angehören kann.

    Beispiel: Wenn ein Film den Genres {Action, Komödie, Drama} zugeordnet werden kann, führt dies zu drei Eingängen:

    Film Action Komödie Drama
    Film A 1 1 0
    Film B 0 1 1
    Film C 1 0 1

14.3.3 Ordinale Merkmale

Ordinale Merkmale besitzen eine natürliche Reihenfolge oder Rangfolge, aber die Abstände zwischen den Stufen sind nicht unbedingt gleich groß (z. B. Schulnoten: sehr gut – gut – befriedigend – ausreichend – mangelhaft; Zufriedenheit: sehr zufrieden – zufrieden – neutral – unzufrieden – sehr unzufrieden).

  • Label-Encoding (Ordinal Encoding)
    Die einfachste und häufigste Methode: Die Kategorien werden durch aufeinanderfolgende Ganzzahlen ersetzt, wobei die Reihenfolge erhalten bleibt.

    Beispiel :

    Kundenzufriedenheit Codierung
    sehr unzufrieden 1
    unzufrieden 2
    neutral 3
    zufrieden 4
    sehr zufrieden 5
Achtung

Beim Label Encoding werden Kategorien als numerische Werte codiert. Ein neuronales Netz interpretiert diese Werte als metrische Größen und nimmt damit implizit gleich große Abstände zwischen den Kategorien an. Ist diese Annahme fachlich nicht gerechtfertigt, sollte stattdessen eine One-Hot-Kodierung oder eine Embedding-Darstellung verwendet werden.

  • Embedding-Encoding:

    Alternativ zum Label Encoding können ordinale Kategorien als dichte Vektoren (Embeddings) dargestellt werden. Dabei wird jeder Kategorie ein Vektor aus reellen Zahlen zugewiesen, dessen Einträge das Modell während des Trainings selbst erlernt. Beispiel:

    Kundenzufriedenheit Embedding (gelernt, Dimension = 2)
    sehr unzufrieden [−0.82, 0.14]
    unzufrieden [−0.45, 0.09]
    neutral [0.01, −0.03]
    zufrieden [0.48, 0.21]
    sehr zufrieden [0.91, 0.37]

    Die Dimension des Embedding-Vektors ist ein Hyperparameter und wird vor dem Training festgelegt. Im Gegensatz zum Label Encoding werden die Abstände zwischen den Kategorien nicht künstlich gleichgesetzt - das Modell kann die geometrische Struktur der Kategorien im Vektorraum selbst anpassen.

14.4 Datenaufbereitung

Neben der Skalierung und Kodierung erfordert die Qualität der Eingangsdaten oft zusätzliche Maßnahmen, um die Stabilität und Generalisierungsfähigkeit des Modells zu gewährleisten.

14.4.1 Fehlende Werte (Missing Values)

Das Vorhandensein fehlender Datenpunkte (NaN/Null) kann die mathematische Berechnung im Netzwerk unterbrechen. Gängige Strategien zur Handhabung sind:

  • Entfernen (Deletion): Die betroffenen Datensätze werden gelöscht. Dies ist nur bei einem sehr geringen Anteil an Fehlwerten praktikabel, um den Informationsverlust zu minimieren.

  • Imputation durch statistische Kennzahlen: Ersetzung der Lücken durch Mittelwert oder Median (bei numerischen Daten) beziehungsweise den Modus (bei kategorischen Daten).

  • Modellbasierte Imputation: Schätzung der fehlenden Werte durch Algorithmen wie k-Nearest-Neighbors (kNN) oder Regressionsmodelle basierend auf den anderen Merkmalen.

  • Indikator-Variablen: Kennzeichnung des Fehlwerts durch einen konstanten Wert (z. B. −1 oder −999) oder durch ein zusätzliches binäres Merkmal („Flag“), das dem Modell signalisiert, dass die Information ursprünglich fehlte.

14.4.2 Ausreißer (Outliers)

Extremwerte können die Gradientenberechnung dominieren und so den Lernprozess verzerren. In vielen Fällen deuten sie auch auf fehlerhafte Messungen hin.

  • Winsorisieren: Werte oberhalb eines definierten Perzentils (z. B. 95 %) oder unterhalb (z. B. 5 %) werden auf den Wert des jeweiligen Perzentils begrenzt (Clipping).

  • Entfernen: Sinnvoll bei klar identifizierbaren Messfehlern oder Datenkorruption.

  • Robust-Skalierung: Verwendung von Skalierungsmethoden, die auf dem Median und dem Interquartilsabstand (IQR) basieren, anstatt auf Mittelwert und Standardabweichung, um den Einfluss von Ausreißern zu reduzieren.

14.4.3 Datenungleichgewicht (Class Imbalance)

Ein starkes Ungleichgewicht in der Klassenverteilung führt häufig dazu, dass das Modell die Minderheitsklasse ignoriert (Bias zugunsten der Mehrheitsklasse).

  • Oversampling: Künstliche Erhöhung der Stichprobenanzahl der Minderheitsklasse, beispielsweise durch Duplikation oder Verfahren wie SMOTE (Synthetic Minority Over-sampling Technique), die synthetische Datenpunkte generieren.

  • Undersampling: Reduktion der Stichprobenanzahl der Mehrheitsklasse, um eine ausgeglichene Verteilung zu erreichen (Risiko des Informationsverlusts).

  • Class Weights: Gewichtung der Verlustfunktion während des Trainings. Fehlklassifikationen der seltenen Klasse werden stärker bestraft als Fehler bei der häufigen Klasse. Dies ist die am häufigsten genutzte Methode bei neuronalen Netzen.

  • Spezielle Loss-Funktionen: Einsatz von Funktionen wie dem Focal Loss, die den Fokus des Modells gezielt auf schwer klassifizierbare Beispiele lenken.

14.5 Verlustfunktionen (Loss Functions)

Die Wahl der Verlustfunktion richtet sich nach der Art der Klassifikationsaufgabe. Für die korrekte mathematische Konvergenz müssen die Aktivierungsfunktion der letzten Schicht und die Loss-Funktion aufeinander abgestimmt sein. Folgende Tabelle kann dabei als Leitfaden dienen:

Aufgabe Empfohlene Verlustfunktion Aktivierung Ausgabe pro Klasse
Binäre Klassifikation Binary Crossentropy Sigmoid 1 Wert \(\in [0,1]\)
Multiklassen (exklusiv) Categorical Crossentropy Softmax Vektor, \(\sum = 1\)
Multilabel Binary Crossentropy (pro Label) Sigmoid Vektor \(\in [0,1]^n\), unabhängig
Multiklassen + Imbalance Weighted Categorical Crossentropy Softmax Vektor, $ = 1$

14.5.1 Binary Cross-Entropy

Für binäre Klassifikationsprobleme wird üblicherweise die Binary Cross-Entropy verwendet. Sie misst, wie stark die vorhergesagte Wahrscheinlichkeit \(\hat{y}\) von der tatsächlichen Klasse \(y \in {0, 1}\) abweicht.

\[ L = -\frac{1}{N}\sum_{i=1}^{N} \left[ \; y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \; \right] \]

Die Funktion bestraft insbesondere selbstsichere, aber falsche Vorhersagen stark (exponentiell). Dadurch eignet sie sich gut für probabilistische Klassifikationsmodelle mit Sigmoid-Ausgabe.

14.5.2 Categorical Cross-Entropy

Dies ist der Standard für Multiklassen-Klassifikationen, bei denen die Zielvariablen im One-Hot-Format vorliegen. Sie berechnet den Verlust über alle \(K\) Klassen hinweg:

\[ L = -\sum_{c=1}^{K} \; y_c \,\log(\;\hat{y}_c\,) \]

14.5.3 Sparse Categorical Cross-Entropy

Neben der Categorical Cross-Entropy gibt es noch die mathematisch äquivalente Sparse Categorical Cross-Entropy, die für den Fall optimiert ist, dass die Labels als Ganzzahlen (0, 1, 2, …) und nicht als One-Hot-Vektoren vorliegen. Die dünnbesetzte Variante ist speichereffizienter und einfacher in der Anwendung bei vielen Klassen.

14.5.4 Binary Cross-Entropy für Multilabel-Probleme

Bei Multilabel-Klassifikation wird für jede Klasse eine eigene binäre Entscheidung getroffen. Daher wird die Binary Cross-Entropy pro Klasse berechnet und anschließend gemittelt:

\[ L = -\frac{1}{K}\sum_{k=1}^{K} \left[ \; y_k \, \log(\, \hat{y}_k \,) + (1 - y_k) \;\log(\,1 - \hat{y}_k\,) \; \right] \]

Achtung

In modernen Frameworks (PyTorch, TensorFlow/Keras) wird die Kombination aus Aktivierung + Verlust oft zusammengefasst:

  • nn.CrossEntropyLoss() in PyTorch → erwartet keinen Softmax im Modell (Logits werden intern bearbeitet)
  • nn.BCEWithLogitsLoss() → erwartet keinen Sigmoid (numerisch stabiler)

14.6 Metriken

14.6.1 Notation

Wir nutzen im weiteren Verlauf folgende Notation:

Tatsächlich Positiv Tatsächlich Negativ
Vorhergesagt Positiv True Positives (TP) False Positives (FP)
Vorhergesagt Negativ False Negatives (FN) True Negatives (TN)

14.6.2 Cheat-Sheet

Mit Hilfe der obigen Notation lässt sich folgendes Cheat-Sheet erklären:

Metrik Geeignet für Formel / Beschreibung Wann bevorzugt?
Accuracy ausbalancierte Datensätze (TP + TN) / (TP + TN + FP + FN) Nur bei ähnlicher Klassengröße
Precision Kosten von False Positive hoch TP / (TP + FP) Spam-Filter, Betrugserkennung
Recall (Sensitivity) Kosten von False Negative hoch TP / (TP + FN) Krebsdiagnose, Defekterkennung
F1-Score Kompromiss Precision ↔︎ Recall 2 × (Precision × Recall) / (Precision + Recall) Standard bei Imbalance
Matthews Correlation Stark imbalanciert (TP·TN − FP·FN) / √((TP+FP)(TP+FN)(TN+FP)(TN+FN)) Sehr gute Metrik bei Imbalance
ROC-AUC Gesamte Diskriminationsfähigkeit Fläche unter der ROC-Kurve Binär & Multilabel
PR-AUC Stark imbalanciert Fläche unter Precision-Recall-Kurve Bei sehr seltenen positiven Fällen

14.6.3 Accuracy (Genauigkeit)

Die Accuracy gehört zu den einfachsten Evaluationsmetriken für Klassifikationen. Sie misst den Anteil der korrekten Vorhersagen:

\[ \mathrm{ Accuracy } = \dfrac{TP + TN}{TP + TN + FP + FN} \]

Sie ist geeignet für Probleme mit gleichmäßig verteilten Klassen, kann andernfalls aber irreführend sein.

Beispiel

Wir betrachten einen Spamfilter, der ausnahmslos jede E-Mail als „Kein Spam” klassifiziert. Wenn wir davon ausgehen, dass 95% unserer Test-Mails keinen Spam darstellen, dann erreicht unser Spamfilter, der eigentlich gar nichts tut, immer noch eine Accuracy von 95%.

14.6.4 Precision (Präzision)

Gibt an, wie viele der als positiv klassifizierten Fälle tatsächlich positiv waren. Eine hohe Precision ist wichtig, wenn die Kosten für Fehlalarme (FP) hoch sind.

\[ \mathrm{ Precision } = \dfrac{TP}{TP + FP} \]

14.6.5 Recall (Sensitivität):

Gibt an, wie viele der tatsächlich vorhandenen positiven Fälle das Modell erkannt hat. Ein hoher Recall ist entscheidend, wenn das Übersehen eines Falles (FN) kritisch ist.

\[ \mathrm{ Recall } = \dfrac{TP}{TP + FN} \]

14.6.6 F1-Score

Das harmonische Mittel aus Precision und Recall. Er ist die bevorzugte Metrik bei unbalancierten Datensätzen, da er beide Fehlerarten (FP und FN) gleichzeitig berücksichtigt.

\[ \mathrm{ F1 } = 2 \cdot \dfrac{\mathrm{ Precision } \cdot \mathrm{ Recall}} {\mathrm{ Precision} + \mathrm{ Recall}} \]