0Pricing
Learn AI with Python · Lektion

Kategorische Variablen codieren

Label-Encoding, One-Hot-Encoding, Ordinal-Encoding und pd.get_dummies() im Vergleich zu sklearn OrdinalEncoder.

Kategorische Variablen codieren ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Warum Kategorien kodieren?

Die meisten Machine-Learning-Modelle benötigen ZAHLEN und keine Textbezeichnungen wie "red" oder "small". Durch Kodierung werden kategoriale Variablen in eine numerische Form umgewandelt, wobei ihre Bedeutung erhalten bleibt.

Ordinal vs. nominal

Ordinale Kategorien haben eine natürliche Reihenfolge (small < medium < large). Nominale Kategorien haben keine (red, green, blue). Die richtige Kodierung hängt davon ab, welche Art von Kategorien vorliegt.

Label-Encoding für ordinale Daten

LabelEncoder ordnet jeder Kategorie eine ganze Zahl zu. Das eignet sich für ORDINALE Daten, bei denen die Reihenfolge der Zahlen eine Bedeutung hat.

from sklearn.preprocessing import LabelEncoder
sizes = ["small", "large", "medium", "small"]
le = LabelEncoder()
print(le.fit_transform(sizes))   # integers (alphabetical by default)

Die Gefahr bei nominalen Daten

Die Anwendung von Label-Encoding auf NOMINALE Daten ist riskant: Das Modell könnte red=0, green=1, blue=2 so interpretieren, dass green „zwischen“ red und blue liegt, und dadurch eine falsche Reihenfolge erfinden. Verwenden Sie stattdessen One-Hot-Encoding.

One-Hot-Encoding mit get_dummies

pd.get_dummies erstellt für jede Kategorie eine binäre Spalte. Pro Zeile ist genau eine Spalte 1. Es gibt keine implizite Reihenfolge, weshalb sich dieses Verfahren ideal für nominale Variablen eignet.

import pandas as pd
df = pd.DataFrame({"color": ["red", "green", "blue", "red"]})
print(pd.get_dummies(df, columns=["color"]))

Die Dummy-Variablen-Falle

Wenn k Kategorien k Spalten erzeugen, sind diese perfekt kollinear, da ihre Summe immer 1 ergibt. Diese Dummy-Variablen-Falle führt bei linearen Modellen zu Problemen. Entfernen Sie eine Spalte, um sie zu vermeiden.

drop_first

drop_first=True entfernt eine Kategorie, sodass k-1 Spalten verbleiben. Die entfernte Kategorie wird zur impliziten Basis (nur Nullen), wodurch die Kollinearität beseitigt wird.

print(pd.get_dummies(df, columns=["color"], drop_first=True))
# one fewer column; the dropped color is the baseline

sklearn OrdinalEncoder

Für Pipelines ist OrdinalEncoder das sklearn-Gegenstück zum Label-Encoding für FEATURES und ermöglicht es Ihnen, die Reihenfolge der Kategorien explizit festzulegen.

from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder(categories=[["small", "medium", "large"]])
print(enc.fit_transform([["medium"], ["large"], ["small"]]))

sklearn OneHotEncoder

OneHotEncoder ist das für Pipelines geeignete One-Hot-Werkzeug. Es lernt die Kategorien aus den Trainingsdaten und wendet dieselbe Zuordnung auf neue Daten an – entscheidend für den Einsatz in der Produktion.

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"], ["green"], ["blue"]]))

Nicht bekannte Kategorien behandeln

Testdaten können Kategorien enthalten, die beim Training nie vorkamen. Setzen Sie handle_unknown="ignore", damit OneHotEncoder statt eines Fehlers für diese Kategorien nur Nullen ausgibt.

ohe = OneHotEncoder(handle_unknown="ignore", sparse_output=False)
ohe.fit([["red"], ["green"]])
print(ohe.transform([["blue"]]))   # all zeros, no error

Spalten mit hoher Kardinalität

One-Hot-Encoding einer Spalte mit Tausenden eindeutiger Werte lässt die Anzahl der Merkmale stark anwachsen. Bei hoher Kardinalität kommen Target-Encoding, Hashing oder das Zusammenfassen seltener Kategorien unter "other" infrage.

Kurze Überprüfung

Testen Sie Ihr Wissen über Kodierung.

Zusammenfassung

Werkzeuge zur Kodierung:

  • Ordinale Daten -> Ganzzahlkodierung (LabelEncoder / OrdinalEncoder)
  • Nominale Daten -> One-Hot-Encoding (pd.get_dummies / OneHotEncoder)
  • drop_first=True vermeidet die Dummy-Variablen-Falle
  • handle_unknown="ignore" für unbekannte Kategorien in den Testdaten
  • Achten Sie auf eine explodierende Spaltenanzahl bei hoher Kardinalität

Häufig gestellte Fragen

Ist die Lektion „Kategorische Variablen codieren“ kostenlos?

Ja — der vollständige Text von „Kategorische Variablen codieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Kategorische Variablen codieren“?

Label-Encoding, One-Hot-Encoding, Ordinal-Encoding und pd.get_dummies() im Vergleich zu sklearn OrdinalEncoder. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Kategorische Variablen codieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ausreißer erkennen und entfernen
  2. Kategorische Variablen codieren
  3. Feature-Skalierung: Normalisierung und Standardisierung
  4. Vorverarbeitungspipelines erstellen
← Zurück zu Learn AI with Python