Tối ưu hóa mô hình XGBoost & Bias-Variance Tradeoff

Mục tiêu bài học

I. Các tham số cần tinh chỉnh trong XGBoost

Dưới đây là 8 tham số phổ biến ảnh hưởng đến hiệu suất của mô hình:


1. n_estimators / num_boost_round – Số vòng boosting

Ví dụ:

xgb.XGBClassifier(n_estimators=100)  # Thử 100 vòng boosting
2. eta – Learning Rate (tốc độ học)

Gợi ý: Dùng eta thấp (0.01–0.3) + tăng số vòng.

Ví dụ:

xgb.XGBClassifier(eta=0.1)  # Tốc độ học vừa phải
3. min_child_weight – Trọng số tối thiểu cho mỗi leaf

Ví dụ:

xgb.XGBClassifier(min_child_weight=5)  # Tránh cây quá phức tạp
4. max_depth – Độ sâu tối đa của cây

Ví dụ:

xgb.XGBClassifier(max_depth=6)  # Cây vừa phải
5. gamma – Ngưỡng để tách (split) cây

Ví dụ:

xgb.XGBClassifier(gamma=0.2)  # Thận trọng khi chia
6. subsample – Tỷ lệ mẫu lấy ra từ tập dữ liệu

Ví dụ:

xgb.XGBClassifier(subsample=0.8)
7. colsample_bytree – Tỷ lệ cột sử dụng cho mỗi cây

Ví dụ:

xgb.XGBClassifier(colsample_bytree=0.7)
8. Tổng quan ảnh hưởng đến Bias vs. Variance
Tham số Giá trị thấp → Ảnh hưởng Giá trị cao → Ảnh hưởng
eta Variance ↑ Bias ↑
max_depth Bias ↑ Variance ↑
min_child_weight Variance ↑ Bias ↑
gamma Variance ↑ Bias ↑
subsample Variance ↑ Bias ↑
colsample_bytree Variance ↑ Bias ↑

II. Kỹ thuật Cross-Validation – Tối ưu tham số

Mục tiêu:

Tìm bộ tham số tốt nhất bằng cách chia nhỏ dữ liệu huấn luyện thành nhiều phần → thử nghiệm mô hình trên từng phần → trung bình kết quả.

Ý tưởng chính
Ưu điểm:
Ví dụ: Sử dụng GridSearchCV để tìm tham số
from sklearn.model_selection import GridSearchCV
from xgboost import XGBClassifier

params = {
    'max_depth': [3, 6],
    'learning_rate': [0.01, 0.1],
    'subsample': [0.7, 1],
}

model = XGBClassifier()
grid = GridSearchCV(estimator=model, param_grid=params, cv=5)
grid.fit(X_train, y_train)

print("Best Params:", grid.best_params_)
Ghi nhớ
Vấn đề Cách giải quyết
Overfitting (Variance cao) Tăng min_child_weight, tăng gamma, giảm max_depth, subsample, colsample_bytree
Underfitting (Bias cao) Giảm min_child_weight, giảm gamma, tăng max_depth, n_estimators

Tổng kết

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


Phiên bản #2
Được tạo 15 tháng 5 2025 14:03:46 bởi Đỗ Ngọc Tú
Được cập nhật 15 tháng 5 2025 14:11:21 bởi Đỗ Ngọc Tú