اكتشف CatBoost، وهو خوارزمية قوية لتعزيز التدرج للبيانات الفئوية. تعرف على كيفية تحسينه للنمذجة التنبؤية جنبًا إلى جنب مع Ultralytics لعمليات سير عمل الذكاء الاصطناعي.
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}")