مشكلة تسرب البيانات
يُسرّب ترميز الهدف الساذج معلومات مستقبلية: عند ترميز فئة بمتوسط هدفها، فإنك تستخدم معلومات من الصف نفسه لترميزه.
حل CatBoost: الترميز المرتب للهدف
يعالج CatBoost الصفوف بترتيب عشوائي. وعند ترميز الصف i، يستخدم فقط الإحصاءات المحسوبة من الصفوف 0..i-1. وهذا يمنع التسرب بحكم التصميم.
التنفيذ
from catboost import CatBoostClassifier
model = CatBoostClassifier(
cat_features=['city', 'device_type', 'email_domain'],
iterations=1000,
learning_rate=0.05,
depth=6,
)
model.fit(X_train, y_train)
لا حاجة لأي ترميز يدوي — مرّر السلاسل النصية الخام مباشرة.