تسرب العملاء (Customer Churn) يُعتبر من أكبر التحديات في صناعة الاتصالات، لأن فقدان العميل يعني خسارة مباشرة في الإيرادات. القدرة على التنبؤ بتسرب العملاء تساعد الشركات على اتخاذ إجراءات وقائية قبل فوات الأوان.
بنيت Pipeline) للتعلم الآلي بهدف التنبؤ بما إذا كان العميل سيقوم بـ:
ترك الخدمة (Churn)
الانضمام (Join)
الاستمرار (Stay)
المعالجة المسبقة للبيانات (Data Preprocessing):
القيم المتطرفة (Outliers): تم اكتشافها باستخدام IQR وضبطها لتجنب تشوهات في الفواتير تؤثر على أداء النماذج.
القيم المفقودة (Null Values): تمت معالجتها باستخدام منطق المجال بدلاً من حذف الصفوف:
إذا كانت خدمة الهاتف = لا → يتم تعيين خدمة الخطوط المتعددة = لا
إذا كانت خدمة الإنترنت = لا → يتم تعيين الأعمدة المرتبطة (الأمن الإلكتروني، النسخ الاحتياطي، الدعم الفني، خدمات البث، البيانات غير المحدودة) = لا
عرض الخدمة (Offer) → القيم المفقودة تم استبدالها بـ "لا يوجد عرض"
نوع الإنترنت (Internet Type) → القيم المفقودة تم استبدالها بـ "لا يوجد إنترنت"
️ متوسط رسوم المكالمات الشهرية الطويلة → محسوبة من إجمالي الرسوم ÷ مدة الخدمة؛ ويتم تعيينها = 0 إذا لم تكن هناك خدمة هاتف
متوسط التحميل الشهري (GB) → القيم المفقودة تم تعيينها = 0 (لأنها تخص العملاء بدون خدمة إنترنت)
الترميز (Encoding): تحويل المتغيرات الفئوية إلى صيغة مناسبة للتعلم الآلي.
موازنة البيانات (Balancing Classes): استخدام SMOTE لمعالجة مشكلة عدم توازن الفئات.
التقسيم (Splitting): تقسيم البيانات بطريقة Stratified Train/Validation/Test لضمان تقييم عادل وغير متحيز.
النماذج المطبقة وتحسينها (Models Implemented & Tuned):
Decision Tree** → دقة %90
Random Forest + Bagging → دقة %93.1
CatBoost + GridSearchCV → أفضل نتيجة بدقة %93.5
Gradient Boosting + RandomizedSearchCV** → دقة %91.4