Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

XGBoost

XGBoost là thư viện gradient boosting lần lượt bổ sung các cây quyết định có điều chuẩn, và là lựa chọn hàng đầu cho dữ liệu dạng bảng. Bài viết giải thích cách hoạt động kèm code.

XGBoost (eXtreme Gradient Boosting) là thư viện mã nguồn mở dành cho cây quyết định tăng cường gradient và là một trong những công cụ được dùng rộng rãi nhất cho dữ liệu dạng bảng. Tianqi Chen bắt đầu dự án này tại Đại học Washington dưới dạng một đề tài nghiên cứu và phát hành vào năm 2014; bài báo KDD năm 2016 XGBoost: Hệ thống tăng cường cây có khả năng mở rộng, được viết cùng Carlos Guestrin, mô tả hàm mục tiêu có regularization và thiết kế hệ thống của thư viện. Thư viện, do cộng đồng DMLC duy trì, xử lý phân loại, hồi quy và xếp hạng từ Python, R, JVM và C, chạy trên CPU và GPU, đồng thời mở rộng quy mô bằng Dask và Spark. Bài báo cho biết 17 trong số 29 giải pháp đoạt giải thử thách được đăng trên blog Kaggle năm 2015 đã sử dụng XGBoost.

Cách XGBoost hoạt động#

XGBoost xây dựng một tổ hợp model theo tuần tự: bắt đầu bằng một dự đoán hằng số rồi thêm một cây sau mỗi vòng boosting; mỗi cây được huấn luyện để giảm hàm mất mát còn lại từ các cây trước đó. Dự đoán cuối cùng là tổng đầu ra của các cây, mỗi đầu ra được thu nhỏ theo tốc độ học (eta, mặc định là 0.3) để không cây nào chi phối kết quả. Hai ý tưởng trong bài báo định hình cách xây dựng từng cây:

  • Hàm mục tiêu bậc hai: Với mỗi hàng, XGBoost tính đạo hàm bậc nhất và bậc hai của hàm mất mát theo dự đoán hiện tại: gradient g và Hessian h. Một lá có tổng gradient của các hàng là G và tổng Hessian là H sẽ nhận trọng số -G / (H + λ), tương ứng với bước Newton mà các optimizer bậc hai thực hiện.
  • Cây có regularization: Hàm mục tiêu cộng thêm một khoản phạt γ cho mỗi lá và khoản phạt L2 λ trên trọng số các lá, cùng khoản phạt L1 tùy chọn α. Chỉ giữ một phép phân nhánh khi mức cải thiện, ½ [G_L²/(H_L + λ) + G_R²/(H_R + λ) − (G_L + G_R)²/(H_L + H_R + λ)] − γ, dương; nhờ đó, regularization được tích hợp vào quá trình xây dựng cây và hạn chế overfitting.

Cây bị giới hạn độ sâu (max_depth, mặc định là 6) và phát triển theo từng tầng, trừ khi grow_policy="lossguide" chuyển sang phát triển theo lá. Quá trình huấn luyện thường dùng early stopping trên tập validation:

Giá trị thiếu, tốc độ và khả năng mở rộng#

Cơ chế tìm phép phân nhánh nhận biết độ thưa của XGBoost có thể huấn luyện trên các bảng có giá trị khuyết mà không cần bước điền giá trị thiếu. Ở mỗi phép phân nhánh, cơ chế thử đưa các hàng có giá trị thiếu sang trái rồi sang phải, giữ hướng có mức cải thiện cao hơn làm nhánh mặc định của nút đó; cơ chế tương tự cho phép quét riêng các phần tử được lưu trữ trong ma trận thưa, chẳng hạn ma trận mã hóa one-hot. Ví dụ này che 30% tổng giá trị đặc trưng trong tập dữ liệu ung thư vú của scikit-learn và huấn luyện trực tiếp với các giá trị khuyết:

import numpy as np
import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Hide 30% of all values; each split learns a default branch for missing ones
rng = np.random.default_rng(0)
X_train_nan = np.where(rng.random(X_train.shape) < 0.3, np.nan, X_train)
X_test_nan = np.where(rng.random(X_test.shape) < 0.3, np.nan, X_test)

for name, train, test in [("complete", X_train, X_test), ("30% missing", X_train_nan, X_test_nan)]:
    model = xgb.XGBClassifier(n_estimators=200, max_depth=4, learning_rate=0.1)
    model.fit(train, y_train)
    print(f"{name}: accuracy {model.score(test, y_test):.3f}")

Kết quả in ra độ chính xác kiểm thử là 0.972 trên dữ liệu đầy đủ và 0.951 khi 30% giá trị bị thiếu trong cả tập huấn luyện lẫn tập kiểm thử.

Để tăng tốc, phương thức cây mặc định hist chia mỗi đặc trưng thành tối đa 256 bin (max_bin) rồi tìm phép phân nhánh trên ranh giới giữa các bin; LightGBM cũng dùng cách tiếp cận này, trong khi exact xét mọi giá trị đã sắp xếp. Đặt device="cuda" sẽ chuyển quá trình huấn luyện sang GPU NVIDIA; enable_categorical=True xử lý trực tiếp các cột phân loại, còn chế độ bộ nhớ ngoài cho phép huấn luyện trên tập dữ liệu lớn hơn RAM. Kể từ phiên bản 2.1, model được lưu theo mặc định ở định dạng nhị phân UBJSON.

  • LightGBM: Framework boosting của Microsoft ra mắt năm 2016, mặc định phát triển cây theo từng lá và bổ sung lấy mẫu hàng dựa trên gradient cùng gộp các đặc trưng thưa. Hiện cả hai thư viện đều mặc định sử dụng histogram và chia sẻ phần lớn kỹ thuật.
  • CatBoost: Thư viện boosting của Yandex, xây dựng cây đối xứng và mã hóa đặc trưng phân loại bằng thống kê mục tiêu có thứ tự.
  • Rừng ngẫu nhiên: Phương pháp bagging huấn luyện độc lập các cây sâu trên các mẫu bootstrap rồi lấy trung bình, giúp giảm phương sai và không cần tinh chỉnh nhiều.
  • Deep learning: Tiêu chuẩn cho đầu vào phi cấu trúc như hình ảnh, âm thanh và văn bản, trong đó mạng học đặc trưng từ dữ liệu thô. Với dữ liệu dạng bảng gồm các đặc trưng được thiết kế sẵn, cây tăng cường vẫn là baseline mà các phương pháp khác cần vượt qua; các model nền tảng cho dữ liệu dạng bảng như TabPFN hiện cũng cạnh tranh với chúng trên tập dữ liệu nhỏ.

Ứng dụng thực tế#

  • Phát hiện gian lận và rủi ro tín dụng: Các công ty thanh toán chấm điểm từng giao dịch dựa trên số tiền, đơn vị bán hàng, vị trí, thiết bị và lịch sử tài khoản; đây là tác vụ mô hình hóa dự đoán cốt lõi, trong đó suy luận nhanh của XGBoost phù hợp với các quyết định theo thời gian thực.
  • Kiểm tra bằng thị giác: Hệ thống chất lượng trong sản xuất kết hợp dữ liệu camera và cảm biến. Dự đoán từ Ultralytics YOLO26 cung cấp dữ liệu từ camera: result.summary() trả về lớp, confidence và tọa độ box của từng lỗi được phát hiện; nhà máy có thể tổng hợp dữ liệu theo từng bộ phận và kết hợp với chỉ số nhiệt độ, áp suất làm feature cho model XGBoost dự đoán lỗi.
  • Xếp hạng và dự đoán lượt nhấp: XGBRanker mặc định huấn luyện với hàm mục tiêu rank:ndcg để sắp xếp kết quả tìm kiếm, còn bộ phân loại nhị phân dự đoán tỷ lệ nhấp quảng cáo.
  • Các bài toán đoạt giải cuộc thi: Bài báo KDD liệt kê những tác vụ đứng sau các giải pháp chiến thắng năm 2015, gồm dự đoán doanh số cửa hàng, phân loại sự kiện vật lý năng lượng cao, phân loại phần mềm độc hại và dự đoán học viên bỏ học trong các khóa học trực tuyến quy mô lớn.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning