Explore the power of CatBoost for categorical data. Learn how this gradient boosting algorithm excels in accuracy and speed for [predictive modeling](https://www.ultralytics.com/glossary/predictive-modeling) tasks.
CatBoost (Categorical Boosting) — это алгоритм машинного обучения с открытым исходным кодом, основанный на градиентном бустинге на деревьях решений. Разработанный компанией Yandex, он предназначен для обеспечения высокой производительности при минимальной подготовке данных и особенно хорошо подходит для обработки категориальных данных — переменных, которые представляют отдельные группы или метки, а не числовые значения. В то время как традиционные алгоритмы часто требуют сложных методов предварительной обработки, таких как кодирование «один-к-одному», для преобразования категорий в числа, 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}")