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ẽ:


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 đề:

Ví dụ:

Giả sử bạn có cột “Giới tính” với 2 giá trị:

Bạn cần chuyển thành:

Giới tính_Nam Giới tính_Nữ
1 0
0 1

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:

II. GIÁ TRỊ THIẾU (Missing Values - NA)

Điểm đặc biệt của XGBoost:
Ví dụ minh họa:

Giả sử bạn có cột “Thu nhập”:

ID Thu nhập
1 5 triệu
2 NA
3 7 triệu
4 NA

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:

Tại sao điều này quan trọng?

Trong thực tế:

III. MỐI QUAN HỆ PHI TUYẾN (Non-linearity)

Lợi thế của XGBoost:

Ví dụ:

Bạn có thể gặp:

Với các mô hình hồi quy tuyến tính, bạn phải:

👉 Nhưng XGBoost thì:

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ổi Giới tính Thu nhập Mua hàng
25 Nam 5 triệu 1
32 Nữ NA 0
40 Nam 10 triệu 1
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ểm Mô tả Xử lý như thế nào
Biến phân loại Không hỗ trợ trực tiếp Dùng dummy variables, tránh trap
NA (giá trị thiếu) XGBoost tự xử lý Không cần thay thế
Phi tuyến Học tốt các mối quan hệ phi tuyến Không cần biến đổi thủ công

Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft


Phiên bản #1
Được tạo 15 tháng 5 2025 09:49:12 bởi Đỗ Ngọc Tú
Được cập nhật 15 tháng 5 2025 09:57:20 bởi Đỗ Ngọc Tú