Leer AI met Python · Les

Categorische variabelen coderen

Label encoding, one-hot encoding, ordinal encoding en pd.get_dummies() versus sklearn OrdinalEncoder.

Les 2 van 413 stappen

Categorische variabelen coderen is een gratis Leer AI met Python-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Waarom categorieën coderen?

De meeste machinelearningmodellen hebben GETALLEN nodig, geen tekstlabels zoals "rood" of "klein". Codering zet categorische variabelen om in een numerieke vorm en behoudt daarbij hun betekenis.

Ordinaal versus nominaal

Ordinale categorieën hebben een natuurlijke volgorde (klein < middelgroot < groot). Nominale categorieën hebben die niet (rood, groen, blauw). De juiste codering hangt af van het soort categorieën dat je hebt.

Labelcodering voor ordinale gegevens

LabelEncoder koppelt elke categorie aan een geheel getal. Dit is geschikt voor ORDINALE gegevens waarbij de volgorde van de gehele getallen betekenisvol is.

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

Het gevaar bij nominale gegevens

Labelcodering toepassen op NOMINALE gegevens is riskant: het model kan rood=0, groen=1, blauw=2 interpreteren alsof groen "tussen" rood en blauw ligt, en zo een valse volgorde verzinnen. Gebruik in plaats daarvan one-hotcodering.

One-hotcodering met get_dummies

pd.get_dummies maakt één binaire kolom per categorie. Per rij is precies één kolom 1, zonder impliciete volgorde, wat ideaal is voor nominale variabelen.

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

De valkuil van dummyvariabelen

Wanneer k categorieën k kolommen opleveren, zijn die perfect collineair (ze tellen altijd op tot 1). Deze valkuil van dummyvariabelen verstoort lineaire modellen. Verwijder één kolom om dit op te lossen.

drop_first

drop_first=True verwijdert één categorie, zodat er k-1 kolommen overblijven. De verwijderde categorie wordt de impliciete basiscategorie (alleen nullen), waardoor collineariteit verdwijnt.

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

sklearn OrdinalEncoder

Voor verwerkingsketens is OrdinalEncoder het sklearn-equivalent van labelcodering voor KENMERKEN. Je kunt er de volgorde van de categorieën expliciet mee opgeven.

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

sklearn OneHotEncoder

OneHotEncoder is het one-hotgereedschap dat geschikt is voor verwerkingsketens. Het leert categorieën uit trainingsgegevens en past dezelfde koppeling toe op nieuwe gegevens, wat cruciaal is voor productie.

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

Onbekende categorieën verwerken

Toetsgegevens kunnen categorieën bevatten die tijdens de training nooit zijn gezien. Stel handle_unknown="ignore" in, zodat OneHotEncoder alleen nullen uitvoert in plaats van vast te lopen.

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

Kolommen met hoge cardinaliteit

One-hotcodering van een kolom met duizenden unieke waarden laat het aantal kenmerken exploderen. Overweeg bij hoge cardinaliteit doelcodering, hashing of het samenvoegen van zeldzame categorieën tot "overig".

Korte toets

Toets je kennis over codering.

Samenvatting

Gereedschapset voor codering:

  • Ordinale gegevens -> codering als gehele getallen (LabelEncoder / OrdinalEncoder)
  • Nominale gegevens -> one-hotcodering (pd.get_dummies / OneHotEncoder)
  • drop_first=True voorkomt de valkuil van dummyvariabelen
  • handle_unknown="ignore" voor onbekende toetscategorieën
  • Let op explosieve groei van kolommen met hoge cardinaliteit
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Categorische variabelen coderen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Categorische variabelen coderen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Categorische variabelen coderen”?

Label encoding, one-hot encoding, ordinal encoding en pd.get_dummies() versus sklearn OrdinalEncoder. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Categorische variabelen coderen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Uitschieters detecteren en verwijderen
  2. Categorische variabelen coderen
  3. Features schalen: normalisatie en standaardisatie
  4. Preprocessingpipelines bouwen
← Terug naar Leer AI met Python