1. 16:53 14/10/2026
Giới thiệu
Trong các dự án Machine Learning trên dữ liệu bảng (tabular), việc chọn hyperparameter phù hợp thường quyết định đến độ chính xác của mô hình. Grid Search và Random Search tốn nhiều thời gian tính toán, trong khi Bayesian Optimization (BO) tận dụng thông tin từ các lần thử trước để hướng tới vùng tham số hứa hẹn nhất. Optuna là thư viện phổ biến hỗ trợ BO, pruning và quản lý thử nghiệm tự động.
Quy trình thực hiện
1. Xác định không gian tìm kiếm: định nghĩa các hyperparameter quan trọng (learning_rate, n_estimators, max_depth, subsample, colsample_bytree…) cùng phạm vi hợp lý.
2. Khởi tạo study Optuna: chọn sampler TPE (Tree-structured Parzen Estimator) và pruner MedianPruner để dừng sớm các trial kém hiệu quả.
3. Viết objective function: trong hàm này, load dữ liệu, chia train/validation, khởi tạo mô hình (ví dụ XGBoost/LightGBM) với tham số từ trial, huấn luyện và trả về metric (RMSE, AUC…).
4. Chạy tối ưu hóa: study.optimize(objective, n_trials=100, timeout=3600). Optuna sẽ tự động lưu trữ lịch sử, cho phép visualize bằng optuna.visualization.
5. Phân tích kết quả: xem biểu đồ importance, slice, contour để hiểu tác động của từng hyperparameter.
Ví dụ thực tế
- Dữ liệu: bộ dữ liệu Kaggle "House Prices" (≈1.4k mẫu, 80 đặc trưng).
- Mô hình: LightGBM regressor.
- Không gian: learning_rate ∈ [0.01, 0.3] (log), num_leaves ∈ [20, 300], min_child_samples ∈ [5, 100], feature_fraction ∈ [0.5, 1.0].
- Kết quả: sau 80 trial, BO tìm được RMSE validation thấp hơn 4.2% so với Random Search 200 trial, đồng thời giảm thời gian chạy 35% nhờ pruning.
Lời khuyên áp dụng
- Luôn chuẩn hóa/encode dữ liệu trước khi đưa vào objective để tránh rò rỉ thông tin.
- Sử dụng cross‑validation внутри objective nếu dữ liệu nhỏ, nhưng cân nhắc chi phí tính toán.
- Bật Optuna dashboard (optuna-dashboard) để theo dõi realtime và chia sẻ với team.
- Lưu study vào file (joblib.dump) để tiếp tục tối ưu sau này hoặc tái sử dụng cho dữ liệu mới.
- Kết hợp BO với feature selection (ví dụ Optuna + SHAP) để giảm chiều dữ liệu trước khi tune mô hình.
Tóm lại, Bayesian Optimization với Optuna mang lại quy trình tune hyperparameter hệ thống, tiết kiệm tài nguyên và dễ dàng tích hợp vào pipeline CI/CD của dự án ML thực tế.