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

Kategorik sütunları kodlama II: OneHotEncoder

Tamam — kategorik sütunlarını sayısal olarak kodladın. Peki şimdi pipeline'lar ve XGBoost kullanmaya geçebilir misin? Henüz değil! Bu veri kümesindeki kategorik sütunlarda girişler arasında doğal bir sıralama yok. Örneğin: LabelEncoder kullanıldığında, Neighborhood içinde CollgCr 5, Veenker 24, Crawfor ise 6 olarak kodlandı. Veenker, Crawfor ve CollgCr'dan "daha büyük" mü? Hayır — modelin böyle doğal bir sıralama varsaymasına izin vermek performansı düşürebilir.

Bu nedenle bir adım daha gerekli: İkili, yani "dummy" değişkenler oluşturmak için one-hot encoding uygulamalısın. Bunu scikit-learn'ün OneHotEncoder sınıfını kullanarak yapabilirsin.

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 OneHotEncoder'ı içe aktar.
  • ohe adlı bir OneHotEncoder nesnesi oluştur. sparse=False anahtar argümanını belirt.
  • .fit_transform() metodunu kullanarak OneHotEncoderdf üzerinde uygula ve çıktıyı df_encoded olarak kaydet. Çıktı bir NumPy dizisi olacaktır.
  • df_encoded'ın ilk 5 satırını yazdır ve ardından farkı karşılaştırmak için hem df'in hem de df_encoded'ın şeklini (shape) yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Import OneHotEncoder
____

# Create OneHotEncoder: ohe
ohe = ____

# Apply OneHotEncoder to categorical columns - output is no longer a dataframe: df_encoded
df_encoded = ____

# Print first 5 rows of the resulting dataset - again, this will no longer be a pandas dataframe
print(df_encoded[:5, :])

# Print the shape of the original DataFrame
print(df.shape)

# Print the shape of the transformed array
print(df_encoded.shape)
Kodu Düzenle ve Çalıştır