Ordinale codering van een categorische kolom
Het imputeren van categorische waarden vraagt om een paar extra stappen vergeleken met numerieke waarden. Je moet ze eerst omzetten naar numerieke waarden, omdat statistische bewerkingen niet op strings kunnen worden uitgevoerd.
Je werkt met de gebruikersprofielgegevensset met klantvoorkeuren en -keuzes die door een restaurant zijn vastgelegd. Deze bevat alleen categorische features. In deze oefening zet je de categorische kolom 'ambience' om naar een numerieke kolom met OrdinalEncoder uit sklearn. De DataFrame is voor je ingeladen als users. De functie OrdinalEncoder() is ook al ingeladen.
De head() en tail() van de users-DataFrame zijn voor je afgedrukt.
Deze oefening maakt deel uit van de cursus
Omgaan met ontbrekende gegevens in Python
Oefeninstructies
- Maak het ordinale encoder-object en ken dit toe aan
ambience_ord_enc. - Selecteer de niet-missende waarden van de kolom
'ambience'inusers. - Reshape
ambience_not_nullnaar vorm(-1, 1). - Vervang de niet-missende waarden van
ambiencedoor de gecodeerde waarden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Set col_name to 'ambience'
col_name = 'ambience'
# Create Ordinal encoder
ambience_ord_enc = ___
# Select non-null values of ambience column in users
ambience = users[col_name]
ambience_not_null = ___
# Reshape ambience_not_null to shape (-1, 1)
reshaped_vals = ___
# Select the non-null values for the column col_name in users and store the encoded values
encoded_vals = ambience_ord_enc.fit_transform(reshaped_vals)
users.loc[___, col_name] = np.squeeze(encoded_vals)