Ordinální kódování kategorického sloupce
Imputace kategorických hodnot vyžaduje několik kroků navíc oproti imputaci numerických hodnot. Nejprve je potřeba převést je na číselné hodnoty, protože statistické operace nelze provádět nad řetězci.
Budeš pracovat s datasetem uživatelských profilů, který obsahuje preference a volby zákazníků zaznamenané restaurací. Dataset obsahuje pouze kategorické příznaky. V tomto cvičení převedeš kategorický sloupec 'ambience' na numerický pomocí OrdinalEncoder z knihovny sklearn. DataFrame byl načten jako users a funkce OrdinalEncoder() je také připravena k použití.
Pro přehled ti byl vypsán head() a tail() DataFramu users.
Toto cvičení je součástí kurzu
Dealing with Missing Data in Python
Pokyny k cvičení
- Vytvoř objekt ordinálního enkodéru a přiřaď ho do proměnné
ambience_ord_enc. - Vyber nenulové hodnoty sloupce
'ambience'v DataFramuusers. - Přeformátuj
ambience_not_nullna tvar(-1, 1). - Nahraď nenulové hodnoty sloupce
ambiencejeho zakódovanými hodnotami.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)