Ordinální kódování DataFrame
Kategorické příznaky lze kódovat dvěma způsoby: one-hot kódováním a ordinálním kódováním. Při one-hot kódování se každá kategorie stane sloupcem a příslušný sloupec kategorie daného řádku nabývá hodnoty 1, ostatní 0. Při ordinálním kódování se kategorie mapují na celočíselné hodnoty od 0 po počet kategorií.
V tomto cvičení budeš procházet všechny sloupce DataFrame users a ordinálně zakódovat jejich kategorie. Encoder pro každý sloupec uložíš do slovníku ordinal_enc_dict, aby bylo možné zakódované sloupce převést zpět na původní kategorie.
Toto cvičení je součástí kurzu
Dealing with Missing Data in Python
Pokyny k cvičení
- Definuj prázdný slovník
ordinal_enc_dict. - Pro každý sloupec vytvoř objekt Ordinal Encoderu.
- Vyber nenulové hodnoty sloupce v
usersa zakóduj je. - Přiřaď zakódované hodnoty zpět nenulových hodnotám každého sloupce (
col_name) vusers.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)