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

Nghiên cứu tình huống bệnh thận I: Bộ gán giá trị cho biến phân loại

Giờ bạn sẽ tiếp tục khám phá cách dùng pipeline với một bộ dữ liệu cần tiền xử lý phức tạp hơn nhiều. Bộ chronic kidney disease dataset chứa cả đặc trưng phân loại và số, nhưng có rất nhiều giá trị khuyết. Mục tiêu là dự đoán ai mắc bệnh thận mạn tính dựa trên các chỉ số máu làm đặc trưng.

Như Sergey đề cập trong video, bạn sẽ làm quen với thư viện mới, sklearn_pandas, cho phép bạn xâu chuỗi nhiều bước xử lý hơn bên trong một pipeline so với những gì scikit-learn hỗ trợ hiện tại. Cụ thể, bạn có thể dùng lớp DataFrameMapper() để áp dụng bất kỳ bộ biến đổi tương thích sklearn nào lên các cột của DataFrame, với đầu ra có thể là mảng NumPy hoặc DataFrame.

Chúng tôi cũng đã tạo một bộ biến đổi tên là Dictifier để bao gói thao tác chuyển đổi DataFrame bằng .to_dict("records") mà bạn không cần tự làm (và để nó hoạt động trong pipeline). Cuối cùng, chúng tôi cũng cung cấp danh sách tên đặc trưng trong kidney_feature_names, tên biến đích trong kidney_target_name, ma trận đặc trưng trong X, và biến đích trong y.

Trong bài này, nhiệm vụ của bạn là áp dụng SimpleImputer của sklearn để gán giá trị cho tất cả các cột phân loại trong bộ dữ liệu. Bạn có thể tham khảo cách tạo mapper cho biến số làm mẫu. Lưu ý các tham số input_df=True và df_out=True? Điều này giúp bạn làm việc với DataFrame thay vì mảng. Mặc định, các bộ biến đổi sẽ nhận một mảng numpy của các cột đã chọn làm đầu vào, và vì thế đầu ra của DataFrame mapper cũng là một mảng. Lịch sử, các bộ biến đổi của scikit-learn được thiết kế để làm việc với mảng numpy, không phải pandas DataFrame, dù giao diện chỉ mục cơ bản của chúng khá giống nhau.

Hướng dẫn

100 XP
  • Áp dụng bộ gán giá trị cho biến phân loại bằng DataFrameMapper() và SimpleImputer(). SimpleImputer() không cần truyền đối số nào. Các cột nằm trong categorical_columns. Nhớ chỉ định input_df=True và df_out=True, và dùng category_feature làm biến vòng lặp trong list comprehension.