# Những Điểm Đặc Biệt (Quirks) của XGBoost ## MỤC TIÊU BÀI HỌC Sau bài học này, bạn sẽ: - Biết được 3 đặc điểm quan trọng khi sử dụng XGBoost. - Hiểu cách xử lý biến phân loại, giá trị thiếu (NA), và mối quan hệ phi tuyến. - Biết cách tránh sai lầm khi tiền xử lý dữ liệu cho XGBoost. --- #### **I. GIỚI THIỆU NGẮN GỌN** XGBoost là một thuật toán mạnh mẽ nhưng có một số **đặc điểm riêng biệt (quirks)** mà người dùng cần hiểu rõ để sử dụng hiệu quả. Cụ thể có **3 điểm chính** như sau: ##### **BIẾN PHÂN LOẠI (Categorical Variables)** Vấn đề: - **XGBoost không hiểu kiểu dữ liệu “character” hay “factor”** (chuỗi hoặc phân loại). - Bạn cần **chuyển đổi chúng thành biến giả (dummy variables)** trước khi đưa vào mô hình. Ví dụ: Giả sử bạn có cột **“Giới tính”** với 2 giá trị: - Nam - Nữ Bạn cần chuyển thành:
Giới tính\_NamGiới tính\_Nữ
10
01
> Tuy nhiên, bạn **không nên giữ cả 2 cột** này cùng lúc! Đây là cái gọi là **“Dummy Variable Trap”**, vì việc giữ cả 2 cột sẽ tạo ra **đa cộng tuyến (multicollinearity)**. **Giải pháp**: - Giữ lại 1 cột duy nhất (ví dụ chỉ giữ "Giới tính\_Nam") - Cột còn lại sẽ được suy ra. #### **II. GIÁ TRỊ THIẾU (Missing Values - NA)** ##### Điểm đặc biệt của XGBoost: - **Không cần loại bỏ hay thay thế NA**. - XGBoost **coi giá trị NA là một thông tin riêng biệt**. ##### Ví dụ minh họa: Giả sử bạn có cột “Thu nhập”:
IDThu nhập
15 triệu
2NA
37 triệu
4NA
Nếu bạn đang dùng hồi quy tuyến tính hay Random Forest, bạn **phải thay thế NA** bằng trung bình hoặc loại bỏ dòng. ❗ Nhưng với XGBoost: - Nó **xem NA là một nhánh riêng trong cây quyết định**. - Giúp giữ lại ý nghĩa của việc “không có thông tin”. ##### Tại sao điều này quan trọng? Trong thực tế: - Nhiều khách hàng không cung cấp đầy đủ dữ liệu. - Việc giữ nguyên NA sẽ giúp mô hình hiểu rằng **“việc không cung cấp thông tin” là một tín hiệu riêng biệt**. #### **III. MỐI QUAN HỆ PHI TUYẾN (Non-linearity)** ##### Lợi thế của XGBoost: - Hiểu được mối quan hệ **phi tuyến (non-linear)** giữa biến độc lập và biến phụ thuộc. Ví dụ: Bạn có thể gặp: - Mối quan hệ hình chữ U (U-shape) - Mối quan hệ hình chữ S (S-shape) Với các mô hình hồi quy tuyến tính, bạn phải: - Biến đổi biến thủ công (thêm x2x^2, log, v.v.) 👉 Nhưng XGBoost thì: - **Tự động học được mối quan hệ phức tạp đó** thông qua cây quyết định. #### **IV. TỔNG HỢP QUA VÍ DỤ THỰC TẾ** Giả sử bạn có tập dữ liệu về khách hàng:
TuổiGiới tínhThu nhậpMua hàng
25Nam5 triệu1
32NữNA0
40Nam10 triệu1
##### Bạn cần làm gì? 1. **Giới tính** → chuyển thành biến giả: giữ "Giới\_tính\_Nam" 2. **Thu nhập NA** → giữ nguyên (không thay thế) 3. Dùng XGBoost để học mô hình → mô hình vẫn hoạt động tốt #### **KẾT LUẬN**
Đặc điểmMô tảXử lý như thế nào
Biến phân loạiKhông hỗ trợ trực tiếpDùng dummy variables, tránh trap
NA (giá trị thiếu)XGBoost tự xử lýKhông cần thay thế
Phi tuyếnHọc tốt các mối quan hệ phi tuyếnKhông cần biến đổi thủ công
**Tác giả: Đỗ Ngọc Tú** **Công Ty Phần Mềm [VHTSoft](https://vhtsoft.com/ "Công Ty Phần Mềm VHTSoft")**