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

CatBoost

CatBoost là thư viện boosting gradient mã nguồn mở của Yandex, mã hóa các đặc trưng phân loại bằng thống kê mục tiêu có thứ tự và phát triển các cây đối xứng.

CatBoost là thư viện gradient boosting mã nguồn mở dành cho decision tree, do Yandex phát triển và phát hành năm 2017. Tên thư viện bắt nguồn từ "categorical boosting": CatBoost nhận trực tiếp các cột phân loại như thành phố, ID sản phẩm hoặc loại thiết bị dưới dạng chuỗi thô và chuyển chúng thành số nội bộ, vì vậy dữ liệu dạng bảng không cần one-hot encoding hoặc target encoding thủ công trước khi huấn luyện. Hai ý tưởng trong bài báo NeurIPS 2018 của CatBoost, thống kê target có thứ tự và boosting có thứ tự, giúp loại nhãn của mỗi dòng huấn luyện khỏi các giá trị dùng để fit dòng đó, tránh hiện tượng rò rỉ gây thiên lệch cho cả target encoding thông thường lẫn boosting tiêu chuẩn. CatBoost huấn luyện trên CPU và GPU, cung cấp giao diện Python, R và dòng lệnh, đồng thời xử lý phân loại, hồi quy và xếp hạng.

Cách CatBoost mã hóa các đặc trưng phân loại#

One-hot encoding tạo một cột cho mỗi danh mục, trở nên cồng kềnh với đặc trưng có hàng nghìn giá trị như ID người bán hoặc người dùng. Target encoding thay mỗi danh mục bằng nhãn trung bình của các dòng thuộc danh mục đó; cách này gọn nhưng làm rò rỉ đáp án: nhãn của chính một dòng góp phần tạo nên giá trị mô tả dòng đó, khiến model học một lối tắt không hiệu quả với dữ liệu mới. Đây là một dạng rò rỉ dữ liệu, biểu hiện thành overfitting và nghiêm trọng nhất ở các danh mục hiếm.

Thống kê target có thứ tự của CatBoost khắc phục vấn đề này bằng cách hoán vị ngẫu nhiên các dòng huấn luyện. Danh mục của mỗi dòng chỉ được mã hóa dựa trên nhãn của các dòng đứng trước nó trong phép hoán vị, có làm trơn theo một giá trị tiên nghiệm, nên không dòng nào nhìn thấy nhãn của chính mình. CatBoost lặp lại quy trình này qua nhiều phép hoán vị, one-hot encode các đặc trưng có rất ít giá trị riêng biệt và tham lam tạo tổ hợp đặc trưng phân loại, chẳng hạn thành phố kết hợp với loại thiết bị, thành đặc trưng mới trong quá trình huấn luyện.

Trong package CatBoost Python, các cột phân loại được truyền theo tên thông qua cat_features. Ví dụ này gán cho mỗi trong số 50 gói đăng ký một tỷ lệ churn ẩn riêng, rồi kiểm tra xem model có khôi phục được các tỷ lệ đó từ tên gói thô hay không:

import numpy as np
import pandas as pd
from catboost import CatBoostClassifier

# Synthetic churn data: each of 50 plans has its own hidden churn rate
rng = np.random.default_rng(0)
rates = rng.uniform(0.05, 0.6, size=50)
plan_ids = rng.integers(0, 50, size=5000)
X = pd.DataFrame({"plan": [f"plan_{i}" for i in plan_ids], "tenure_months": rng.integers(1, 60, size=5000)})
y = rng.random(5000) < rates[plan_ids]

# Raw strings go in directly; CatBoost encodes them with ordered target statistics
model = CatBoostClassifier(iterations=200, depth=4, verbose=0, random_seed=0)
model.fit(X, y, cat_features=["plan"])

# Compare true and predicted churn for the safest and riskiest plans
lo, hi = rates.argmin(), rates.argmax()
probe = pd.DataFrame({"plan": [f"plan_{lo}", f"plan_{hi}"], "tenure_months": [30, 30]})
print("True churn rates:     ", rates[[lo, hi]].round(2))
print("Predicted churn rates:", model.predict_proba(probe)[:, 1].round(2))

Script in ra tỷ lệ thực là 0.05 và 0.60, cùng tỷ lệ dự đoán là 0.06 và 0.59. Model đã khôi phục tỷ lệ churn của từng gói từ cột chuỗi thô, với chỉ khoảng 100 dòng huấn luyện cho mỗi gói.

Boosting có thứ tự và cây đối xứng#

Gradient boosting tiêu chuẩn tính mục tiêu cho mỗi cây mới—gradient của loss—trên chính các dòng đã dùng để fit những cây trước đó, khiến gradient bị thiên lệch; các tác giả CatBoost gọi đây là dịch chuyển dự đoán. Boosting có thứ tự áp dụng lại thủ thuật hoán vị: gradient của mỗi dòng được tính từ model chỉ huấn luyện trên các dòng đứng trước trong phép hoán vị. Đây là tùy chọn huấn luyện boosting_type="Ordered", thường cải thiện chất lượng trên dataset nhỏ nhưng phải đánh đổi tốc độ. Mặc định trên CPU là phương pháp cổ điển "Plain"; khi huấn luyện trên GPU, mặc định dùng "Ordered" với dataset tối đa 50,000 dòng, ngoại trừ chế độ đa lớp.

Theo mặc định, CatBoost phát triển cây đối xứng, hay cây oblivious, trong đó mọi node ở cùng độ sâu dùng cùng một điều kiện chia. Vì vậy, cây có độ sâu 6—mặc định—chỉ gồm sáu phép kiểm tra đúng-sai, các đáp án tạo thành chỉ số 6 bit trỏ đến 64 lá; cách này giúp dự đoán nhanh và giới hạn độ phức tạp của mỗi cây, tạo thành một dạng regularization. Tham số grow_policy chuyển sang cách phát triển theo chiều sâu hoặc theo lá khi dataset cần cây ít bị ràng buộc hơn.

Ứng dụng thực tế#

  • Rủi ro tín dụng: Bên cho vay kết hợp các trường phân loại của người nộp đơn như nghề nghiệp, khu vực và mục đích vay với số liệu thu nhập và nợ dạng số để dự đoán khả năng vỡ nợ, không cần one-hot encode hàng trăm mã nghề nghiệp.
  • Xếp hạng và đề xuất: CatBoost cung cấp các loss xếp hạng như YetiRank, dùng để sắp xếp kết quả tìm kiếm hoặc sản phẩm theo mức độ liên quan dự đoán từ các đặc trưng người dùng, mặt hàng và ngữ cảnh trong hệ thống gợi ý.
  • Định giá bất động sản: Detector YOLO26 được huấn luyện tùy chỉnh có thể đếm các tiện ích như hồ bơi hoặc tấm pin mặt trời trong ảnh đăng bán; các số đếm này được đưa vào model giá CatBoost dưới dạng cột số, bên cạnh các cột phân loại như khu dân cư và loại bất động sản.

CatBoost so với XGBoost và LightGBM#

Cả ba thư viện đều xây dựng một ensemble gồm các cây theo trình tự, trong đó mỗi cây sửa lỗi của những cây trước đó; đây là điểm khác biệt so với random forest, vốn dùng các cây được huấn luyện độc lập.

  • XGBoost: Theo mặc định, phát triển cây theo từng tầng và thêm regularization L1, L2 vào hàm mục tiêu. Hỗ trợ phân loại gốc được bổ sung ở các phiên bản sau, nhưng nhiều pipeline vẫn mã hóa danh mục trước khi huấn luyện.
  • LightGBM: Phát triển cây theo từng lá, tách lá giúp giảm loss nhiều nhất, đồng thời chia đặc trưng thành các bin histogram để tăng tốc trên dataset lớn. LightGBM cũng nhận trực tiếp các cột phân loại được mã hóa bằng số nguyên.
  • CatBoost: Xây dựng cây đối xứng, mã hóa danh mục bằng thống kê target có thứ tự và cho kết quả tốt mà không cần tinh chỉnh hyperparameter trước. Cấu hình mặc định là 1,000 cây có độ sâu 6; learning rate được tự động chọn dựa trên số vòng lặp đối với các mục tiêu log loss, đa lớp và RMSE.

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