1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Gradient Boosting Cực Mạnh với XGBoost

Connected

Bài tập

Mã hóa cột phân loại II: OneHotEncoder

Ổn rồi — bạn đã mã hóa các cột phân loại thành số. Vậy có thể chuyển ngay sang dùng pipelines và XGBoost chưa? Chưa đâu! Ở các cột phân loại của bộ dữ liệu này, không có thứ tự tự nhiên giữa các giá trị. Ví dụ: Dùng LabelEncoder, Neighborhood CollgCr được mã hóa thành 5, còn Neighborhood Veenker thành 24, và Crawfor là 6. Liệu Veenker có “lớn hơn” Crawfor và CollgCr không? Không — và nếu để mô hình ngầm hiểu có thứ tự tự nhiên như vậy, hiệu suất có thể kém đi.

Vì thế, cần thêm một bước nữa: bạn phải áp dụng one-hot encoding để tạo các biến nhị phân ("dummy"). Bạn có thể làm điều này bằng OneHotEncoder của scikit-learn.

Hướng dẫn

100 XP
  • Import OneHotEncoder từ sklearn.preprocessing.
  • Khởi tạo một đối tượng OneHotEncoder tên là ohe. Chỉ định tham số sparse=False.
  • Dùng phương thức .fit_transform() để áp dụng OneHotEncoder lên df và lưu kết quả vào df_encoded. Đầu ra sẽ là một mảng NumPy.
  • In 5 dòng đầu của df_encoded, sau đó in shape của df cũng như df_encoded để so sánh sự khác biệt.