المشروع ده بيركز على كشف الهجمات الشبكية (Network Intrusion Detection) باستخدام بيانات NSL-KDD. الهدف الأساسي هو بناء وتقييم نماذج تعلم آلي قادرة على التمييز بين حركة مرور طبيعية و هجمات ضارة.
الخطوات اللي اتعملت في المشروع:
تحميل واستكشاف البيانات
تحميل بيانات NSL-KDD.
فحص حجم البيانات، القيم المفقودة، وتوزيع أنواع الهجمات.
معالجة البيانات (Preprocessing)
تحويل الأعمدة التصنيفية (protocol_type, service, flag) إلى قيم رقمية باستخدام Label Encoding.
إزالة الخصائص قليلة التباين (low variance) والخصائص شديدة الارتباط لتقليل التكرار.
مقياس الخصائص الرقمية باستخدام StandardScaler.
اختيار وتحليل الخصائص (Feature Selection)
حساب معامل الارتباط بين الخصائص والهدف (هجوم / طبيعي).
عرض أهم 10 خصائص مؤثرة باستخدام الرسوم البيانية والـ Heatmap.
تدريب وتقييم النماذج
تدريب 3 نماذج: الانحدار اللوجستي (Logistic Regression)، غابة عشوائية (Random Forest)، و AdaBoost.
تقييم النماذج باستخدام: الدقة (Accuracy)، تقرير التصنيف (Classification Report)، مصفوفة الارتباك (Confusion Matrix)، منحنى ROC-AUC، والتحقق المتقاطع (Cross-Validation).
مقارنة النتائج بين النماذج لاختيار الأفضل.
التصور (Visualization)
رسم منحنيات ROC لكل نموذج.
عرض توزيع احتمالية التنبؤ بين الطبيعي والهجوم.
رسم مصفوفة الارتباك وأهمية الخصائص.
النتائج الأساسية:
بناء نماذج بتكشف الهجمات الشبكية بدقة عالية.
مقارنة بين خوارزميات كلاسيكية (Logistic Regression) وأساليب تجميع (Random Forest و AdaBoost).
تحديد أهم الخصائص اللي بتساهم في اكتشاف الهجمات.
باختصار:
المشروع بيوضح إزاي ممكن استخدام التعلم الآلي في مجال الأمن السيبراني لبناء أنظمة كشف التسلل (Intrusion Detection Systems) والتفرقة بين الحركة الطبيعية والهجمات على الشبكة.