探索CatBoost——一款专为分类数据设计的强大梯度提升算法。了解它如何Ultralytics 协同增强预测建模能力,共同优化人工智能工作流程。
CatBoost(分类提升)是一种基于决策树梯度提升的开源机器学习算法。由Yandex开发,该算法旨在以最少的数据准备工作实现高性能,尤其擅长处理分类数据——即代表不同组别或标签而非数值的变量。 传统算法通常需要复杂预处理技术(如 one-hot编码)将类别转换为数字,而CatBoost 可在训练过程中直接处理此类特征。该特性结合其通过有序提升 减少过拟合的能力,使其成为数据科学中各类 预测建模任务的稳健选择。
CatBoost通过若干优先考虑准确性和易用性的架构设计,在众多集成方法中脱颖而出。
CatBoost常与其他流行的增强库进行比较。虽然它们共享相同的底层框架,但各自具有独特的特性。
CatBoost的稳健性使其成为处理结构化数据的跨行业多功能工具。
虽然CatBoost主要用于处理表格数据,但在多模态模型工作流中它也发挥着关键作用——尤其当视觉数据与结构化元数据相结合时。常见的工作流是:先使用计算机视觉模型从图像中提取特征,再将这些特征输入CatBoost分类器进行处理。
例如,房地产评估系统可能使用 Ultralytics 对房产照片进行 目标检测,统计泳池或太阳能板等 配套设施的数量。这些物体的计数值随后作为数值特征, 与位置和面积数据一同输入CatBoost模型, 用于预测房屋价值。 开发者可通过Ultralytics 管理 这些管道的视觉组件, 该平台简化了数据集管理与模型部署流程。
以下示例演示了如何加载预训练YOLO 从图像中提取物体计数, 这些计数可作为CatBoost模型的输入特征。
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("path/to/property_image.jpg")
# Extract class counts (e.g., counting 'cars' or 'pools')
# This dictionary can be converted to a feature vector for CatBoost
class_counts = {}
for result in results:
for cls in result.boxes.cls:
class_name = model.names[int(cls)]
class_counts[class_name] = class_counts.get(class_name, 0) + 1
print(f"Features for CatBoost: {class_counts}")