نظام تنبؤ بأمراض القلب باستخدام Machine Learning (XGBoost + SHAP)

تفاصيل العمل

قمت ببناء مشروع Machine Learning متكامل للتنبؤ بوجود أمراض القلب اعتمادًا على 13 مؤشرًا طبيًا (العمر، ضغط الدم، الكوليسترول، نوع ألم الصدر، نتائج اختبار المجهود وغيرها)، بدايةً من تحليل البيانات وحتى تجهيز النموذج للنشر.

اللي عملته في المشروع:

-تحليل استكشافي (EDA): توزيع الفئات، الارتباطات، Pairplot، وCross-tabulation بين المتغيرات والنتيجة.

-معالجة القيم الشاذة: استخدمت IQR Capping بدل الحذف، لأن القيم العالية في الحالات الطبية ممكن تكون حالات حقيقية مهمة، والداتا أصلًا صغيرة (303 سجل).

-Feature Engineering: صممت 5 متغيرات جديدة مبنية على منطق طبي (مثل مؤشر خطورة مركّب ونسبة معدل القلب للعمر)، وقيّمتها بـ Mutual Information واستبعدت المتغير الضعيف.

-بناء ومقارنة 4 نماذج: Decision Tree وRandom Forest وGradient Boosting وXGBoost، مع Stratified 5-Fold Cross-Validation وRandomized Search لضبط الـ Hyperparameters.

-أفضل نموذج (XGBoost): حقق AUC-ROC = 0.87 وAccuracy ≈ 80% وRecall = 86% على بيانات الاختبار.

-تفسير النموذج (Explainability): استخدمت SHAP لتوضيح العوامل المؤثرة في القرار على مستوى الداتا كلها وعلى مستوى مريض بعينه.

-Cost-Sensitive Learning: ضبطت scale_pos_weight لتقليل الحالات المرضية اللي النموذج بيفوتها، فارتفع الـ Recall من 86% إلى 90%.

-Stacking Ensemble: جربت دمج النماذج، وقارنته بـ XGBoost منفرد.

-جاهز للنشر: حفظت الـ Pipeline كاملًا (Scaler + Model) بصيغة joblib.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات