探索 CatBoost,一种强大的分类数据梯度提升算法。了解它如何结合 Ultralytics YOLO26 增强 AI 工作流程中的预测建模。
CatBoost(分类Boosting)是一种基于决策树的梯度提升开源机器学习算法。由Yandex开发,它旨在以最少的数据准备提供高性能,特别擅长处理分类数据——即表示不同组或标签而非数值的变量。传统算法通常需要复杂的预处理技术,如独热编码,将类别转换为数字,而CatBoost可以在训练期间直接处理这些特征。这种能力,结合其通过有序Boosting减少过拟合的能力,使其成为数据科学中各种预测建模任务的强大选择。
CatBoost通过一些优先考虑准确性和易用性的架构选择,使其区别于其他集成方法。
CatBoost经常与其他流行的Boosting库一起进行评估。尽管它们共享相同的基础框架,但它们具有独特的特点。
CatBoost的鲁棒性使其成为处理结构化数据的各个行业中的多功能工具。
尽管CatBoost主要是一个处理表格数据的工具,但在视觉数据与结构化元数据相结合的多模态模型工作流中,它发挥着至关重要的作用。一个常见的工作流是利用计算机视觉模型从图像中提取特征,然后将这些特征输入到CatBoost分类器中。
例如,一个房地产估价系统可能会使用Ultralytics YOLO26对房产照片执行object detection,统计泳池或太阳能电池板等设施。这些对象的计数随后作为数值特征,与位置和面积数据一同输入到CatBoost模型中,以预测房屋价值。开发人员可以使用Ultralytics Platform管理这些管道的视觉组件,该平台简化了数据集管理和模型部署。
以下示例演示了如何加载预训练的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}")

开启您的机器学习未来之旅