CatBoost
Познакомься с CatBoost — мощным алгоритмом градиентного бустинга для категориальных данных. Узнай, как он улучшает прогнозное моделирование вместе с Ultralytics YOLO26 в рабочих процессах ИИ.
CatBoost (категориальный бустинг) — алгоритм машинного обучения с открытым исходным кодом, основанный на градиентном бустинге над деревьями решений. Разработанный компанией Yandex, он обеспечивает высокую производительность при минимальной подготовке данных и особенно хорошо работает с категориальными данными — переменными, представляющими отдельные группы или метки, а не числовые значения. Традиционные алгоритмы часто требуют сложных методов предварительной обработки, таких как one-hot-кодирование, для преобразования категорий в числа, тогда как CatBoost может обрабатывать такие признаки непосредственно во время обучения. Эта возможность в сочетании со способностью снижать переобучение с помощью упорядоченного бустинга делает CatBoost надёжным выбором для широкого спектра задач предиктивного моделирования в области анализа данных.
Ключевые преимущества и принцип работы#
CatBoost отличается от других методов ансамблирования несколькими архитектурными решениями, ориентированными на точность и удобство использования.
- Встроенная поддержка категориальных признаков: алгоритм использует метод упорядоченной статистики по целевой переменной, чтобы преобразовывать категориальные значения в числа во время обучения. Это предотвращает утечку целевой переменной, часто возникающую при использовании стандартных методов кодирования, и сохраняет корректность процесса валидации.
- Упорядоченный бустинг: стандартные методы градиентного бустинга могут страдать от сдвига предсказаний — разновидности смещения в ИИ. CatBoost решает эту проблему с помощью подхода к обучению модели на основе перестановок, не позволяя модели переобучаться на конкретном распределении обучающих данных.
- Симметричные деревья: в отличие от многих других библиотек бустинга, которые строят деревья по уровням или по листьям, CatBoost создаёт симметричные (сбалансированные) деревья. Такая структура обеспечивает чрезвычайно высокую скорость инференса, что особенно важно для приложений инференса в реальном времени.
CatBoost в сравнении с XGBoost и LightGBM#
CatBoost часто сравнивают с другими популярными библиотеками бустинга. Хотя они используют одну и ту же базовую архитектуру, их характеристики различаются.
- XGBoost: чрезвычайно гибкая и широко используемая библиотека, известная своей производительностью в соревнованиях по анализу данных. Для достижения максимальной производительности обычно требуется тщательная настройка гиперпараметров и ручное кодирование категориальных переменных.
- LightGBM: эта библиотека использует стратегию роста по листьям, благодаря чему исключительно быстро обучается на огромных наборах данных. Однако без тщательной регуляризации она может быть более склонна к переобучению на небольших наборах данных по сравнению со стабильными симметричными деревьями CatBoost.
- CatBoost: часто обеспечивает наилучшую точность «из коробки» с параметрами по умолчанию. Как правило, это предпочтительный выбор для наборов данных со значительным количеством категориальных признаков, поскольку он снижает необходимость в масштабной инженерии признаков.
Практические применения#
Надёжность CatBoost делает его универсальным инструментом для различных отраслей, работающих со структурированными данными.
-
Оценка финансовых рисков: банки и финтех-компании используют CatBoost для оценки права на получение кредита и прогнозирования кредитных дефолтов. Модель может без проблем объединять различные типы данных, например профессию заявителя (категориальный признак) и уровень дохода (числовой признак), чтобы создавать точные профили рисков. Эта возможность лежит в основе современного применения ИИ в финансах.
-
Рекомендации в электронной коммерции: интернет-магазины используют CatBoost для работы персонализированных рекомендательных систем. Анализируя журналы поведения пользователей, категории товаров и историю покупок, алгоритм прогнозирует вероятность того, что пользователь нажмёт на товар или купит его, непосредственно способствуя оптимизации ИИ в розничной торговле.
Интеграция с компьютерным зрением#
Хотя CatBoost в первую очередь предназначен для табличных данных, он играет важную роль в рабочих процессах с мультимодальными моделями, где визуальные данные объединяются со структурированными метаданными. Распространённый рабочий процесс заключается в использовании модели компьютерного зрения для извлечения признаков из изображений с последующей передачей этих признаков классификатору CatBoost.
Например, система оценки стоимости недвижимости может использовать Ultralytics YOLO26 для выполнения обнаружения объектов на фотографиях объектов недвижимости, подсчитывая такие элементы, как бассейны или солнечные панели. Затем количество этих объектов передаётся в модель 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}")








