BaşlayınÜcretsiz Başlayın

Kategorik sütunları kodlama I: LabelEncoder

Artık konut verilerini XGBoost için hazır hale getirmek için neler yapman gerektiğini gördüğüne göre, süreci adım adım uygulayalım.

Önce eksik değerleri doldurman gerekiyor — daha önce gördüğün gibi LotFrontage sütununda çok sayıda eksik değer var. Sonra, veri kümesindeki kategorik sütunları sayısal olarak kodlanmaları için one-hot encoding kullanarak dönüştürmen gerekecek. Fikri hatırlamak istersen Supervised Learning with scikit-learn kursundaki bu videoya göz atabilirsin.

Veride beş kategorik sütun var: MSZoning, PavedDrive, Neighborhood, BldgType ve HouseStyle. Scikit-learn, her kategorik sütundaki değerleri tamsayılara dönüştüren bir LabelEncoder fonksiyonuna sahip. Bunu burada kullanmayı pratik edeceksin.

Bu egzersiz

XGBoost ile Aşırı Gradyan Artırma

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • sklearn.preprocessing içinden LabelEncoder'ı içe aktar.
  • .fillna() kullanarak LotFrontage sütunundaki eksik değerleri 0 ile doldur.
  • Kategorik sütunlar için bir boolean maske oluştur. Bunu, df.dtypes'ın objecta eşit olup olmadığını kontrol ederek yapabilirsin.
  • Bir LabelEncoder nesnesi oluştur. Bunu, herhangi bir scikit-learn tahmin edicisini başlattığın şekilde yapabilirsin.
  • LabelEncoder() kullanarak tüm kategorik sütunları tamsayılara kodla. Bunu yapmak için, verilen lambda fonksiyonunda le nesnesinin .fit_transform() metodunu kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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())
Kodu Düzenle ve Çalıştır