في هذا المشروع، طورت نموذجًا للتعلم الآلي يهدف إلى التنبؤ بما إذا كان الكائن القريب من الأرض (NEO) يُشكّل خطرًا (“hazardous”) أم لا، اعتمادًا على بيانات فلكية متنوعة.
استيراد البيانات وفهمها:
جلبت مجموعة بيانات من Kaggle تشمل خصائص مثل السرعة النسبية، المسافة، الأبعاد التقديرية، واللمعان.
استعرضت الخصائص (features) وحللت علاقتها مع الهدف (is_hazardous).
تنظيف وتحضير البيانات (Data Preprocessing & Cleaning):
معالجة القيم المفقودة (Missing Values) وحذف الصفوف الناقصة عند الحاجة.
إزالة التكرارات (Duplicates).
اكتشاف ومعالجة القيم الشاذة (Outliers) باستخدام Box Plot, Z-score, IQR.
اختيار الخصائص الأكثر ارتباطًا بالهدف (Feature Selection).
تقسيم البيانات إلى Train / Test.
تطبيق Scaling/Normalization للخصائص العددية.
معالجة مشكلة عدم توازن الفئات (Class Balancing) باستخدام Oversampling / Undersampling / Class Weights.
بناء نماذج التصنيف (Classification Models):
النماذج الخطية: Logistic Regression, LDA, QDA.
النماذج الشجرية: Decision Tree, Random Forest, Extra Trees.
نماذج Boosting: XGBoost, LightGBM, CatBoost.
تقييم النماذج:
حساب Accuracy, Precision, Recall, F1-Score, ROC AUC.
مقارنة الأداء قبل وبعد معالجة توازن الفئات.
ملاحظة تفوق بعض النماذج مثل Random Forest و Extra Trees.