Ordinale encodering van een DataFrame
Categorische features kun je encoderen met twee technieken: one-hot encodering en ordinale encodering. Bij one-hot encodering wordt elke categorie een kolom en is voor elke rij de betreffende categoriekolom 1 en de andere 0. Bij ordinale encodering worden de categorieën toegewezen aan gehele waarden, beginnend bij 0 tot het aantal categorieën.
In deze oefening loop je over alle kolommen in de users DataFrame om de categorieën ordinaal te encoderen. Je slaat ook voor elke kolom een encoder op in een dictionary ordinal_enc_dict, zodat de gecodeerde kolommen kunnen worden teruggezet naar de oorspronkelijke categorieën.
Deze oefening maakt deel uit van de cursus
Omgaan met ontbrekende gegevens in Python
Oefeninstructies
- Definieer een lege dictionary
ordinal_enc_dict. - Maak voor elke kolom een Ordinal Encoder-object aan.
- Selecteer de niet-nullwaarden van de kolom in users en codeer ze.
- Schrijf de gecodeerde waarden terug naar de niet-nullwaarden van elke kolom (
col_name) in users.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)