ÎncepețiÎncepe gratuit

Codificarea coloanelor categorice I: LabelEncoder

Acum că ai văzut ce trebuie făcut pentru a pregăti datele despre locuințe în vederea utilizării cu XGBoost, să parcurgem procesul pas cu pas.

În primul rând, va trebui să completezi valorile lipsă – după cum ai observat anterior, coloana LotFrontage are multe valori lipsă. Apoi, va trebui să codifici coloanele categorice din setul de date folosind codificarea one-hot, astfel încât să fie reprezentate numeric. Poți urmări acest videoclip din cursul Supervised Learning with scikit-learn pentru a-ți reîmprospăta noțiunile.

Setul de date conține cinci coloane categorice: MSZoning, PavedDrive, Neighborhood, BldgType și HouseStyle. Scikit-learn pune la dispoziție funcția LabelEncoder, care convertește valorile din fiecare coloană categorică în numere întregi. Vei exersa utilizarea acesteia în continuare.

Acest exercițiu face parte din cursul

Gradient Boosting Extrem cu XGBoost

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă LabelEncoder din sklearn.preprocessing.
  • Completează valorile lipsă din coloana LotFrontage cu 0 folosind .fillna().
  • Creează o mască booleană pentru coloanele categorice. Poți face acest lucru verificând dacă df.dtypes este egal cu object.
  • Creează un obiect LabelEncoder. Procedează la fel ca atunci când instanțiezi orice estimator scikit-learn.
  • Codifică toate coloanele categorice ca numere întregi folosind LabelEncoder(). În acest scop, aplică metoda .fit_transform() a obiectului le în funcția lambda furnizată.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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())
Editează și rulează codul