Začněte nyníZačněte zdarma

Kódování kategorických sloupců I: LabelEncoder

Teď, když víš, co bude potřeba udělat, aby byla data o bydlení připravená pro XGBoost, pojďme si celý postup projít krok za krokem.

Nejprve bude nutné doplnit chybějící hodnoty – jak jsi viděl/a dříve, sloupec LotFrontage jich má mnoho. Poté bude potřeba zakódovat kategorické sloupce v datasetu pomocí one-hot encodingu, aby byly reprezentovány numericky. Pro osvěžení tohoto konceptu se můžeš podívat na toto video z kurzu Supervised Learning with scikit-learn.

Data obsahují pět kategorických sloupců: MSZoning, PavedDrive, Neighborhood, BldgType a HouseStyle. Scikit-learn nabízí funkci LabelEncoder, která převede hodnoty v každém kategorickém sloupci na celá čísla. Tady si ji procvičíš.

Toto cvičení je součástí kurzu

Extreme Gradient Boosting with XGBoost

Zobrazit kurz

Pokyny k cvičení

  • Naimportuj LabelEncoder z sklearn.preprocessing.
  • Doplň chybějící hodnoty ve sloupci LotFrontage hodnotou 0 pomocí .fillna().
  • Vytvoř booleovskou masku pro kategorické sloupce – stačí zkontrolovat, zda se df.dtypes rovná object.
  • Vytvoř objekt LabelEncoder. Postupuj stejně jako při vytváření jakéhokoli jiného estimátoru ze scikit-learn.
  • Zakóduj všechny kategorické sloupce na celá čísla pomocí LabelEncoder(). K tomu použij metodu .fit_transform() objektu le v připravené lambda funkci.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Import LabelEncoder
____

# Fill missing values with 0
df.LotFrontage = ____

# Create a boolean mask for categorical columns
categorical_mask = (____ == ____)

# Get list of categorical column names
categorical_columns = df.columns[categorical_mask].tolist()

# Print the head of the categorical columns
print(df[categorical_columns].head())

# Create LabelEncoder object: le
le = ____

# Apply LabelEncoder to categorical columns
df[categorical_columns] = df[categorical_columns].apply(lambda x: ____(x))

# Print the head of the LabelEncoded categorical columns
print(df[categorical_columns].head())
Upravit a spustit kód