Scopri CatBoost, un potente algoritmo di gradient boosting per dati categoriali. Scopri come migliora la modellazione predittiva insieme a Ultralytics per i flussi di lavoro di IA.
CatBoost (Categorical Boosting) è un algoritmo di apprendimento automatico open source basato sul gradient boosting sugli alberi decisionali. Sviluppato da Yandex, è progettato per offrire prestazioni elevate con una preparazione minima dei dati, eccellendo in particolare nella gestione dei dati categoriali, ovvero variabili che rappresentano gruppi o etichette distinti piuttosto che valori numerici. Mentre gli algoritmi tradizionali richiedono spesso tecniche di pre-elaborazione complesse come la codifica one-hot per convertire le categorie in numeri, CatBoost è in grado di elaborare queste caratteristiche direttamente durante l'addestramento. Questa capacità, unita alla sua capacità di ridurre l'overfitting attraverso il boosting ordinato, lo rende una scelta robusta per un'ampia gamma di attività di modellazione predittiva nella scienza dei dati.
CatBoost si distingue dagli altri metodi di ensemble grazie a diverse scelte architetturali che privilegiano l'accuratezza e la facilità d'uso.
CatBoost viene spesso valutato insieme ad altre librerie di boosting popolari. Pur condividendo lo stesso framework di base, presentano caratteristiche distinte.
La robustezza di CatBoost lo rende uno strumento versatile in vari settori che gestiscono dati strutturati.
Sebbene CatBoost sia principalmente uno strumento per dati tabulari, svolge un ruolo fondamentale nei flussi di lavoro dei modelli multimodali in cui i dati visivi incontrano i metadati strutturati. Un flusso di lavoro comune prevede l'utilizzo di un modello di visione artificiale per estrarre caratteristiche dalle immagini e quindi inserire tali caratteristiche in un classificatore CatBoost.
Ad esempio, un sistema di valutazione immobiliare potrebbe utilizzare Ultralytics per eseguire il rilevamento di oggetti sulle foto delle proprietà, contando servizi come piscine o pannelli solari. Il conteggio di questi oggetti viene quindi trasferito come caratteristiche numeriche in un modello CatBoost insieme ai dati relativi alla posizione e alla metratura per prevedere il valore dell'abitazione. Gli sviluppatori possono gestire la componente di visione di queste pipeline utilizzando la Ultralytics , che semplifica la gestione dei set di dati e l'implementazione dei modelli.
L'esempio seguente mostra come caricare un YOLO pre-addestrato per estrarre il conteggio degli oggetti da un'immagine, che potrebbe quindi fungere da input per un modello 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}")