Post by Mohamed Mahmoud Mohamed

TA.Bigdata Digilians| Rag and llm internship @zedny | generative ai professional DEPI | instructor Ai | GDSC vice head data science | iti full stack by python | Big data nti

النهارده حابب نتكلم مع بعض عن مشروع بسيط الـ Regression Models.  في البداية، كلنا عارفين Linear Regression، سواء كان: Simple Multiple Polynomial لكن الموضوع مش بيقف هنا،لان معانا : Ridge و Lasso. والحقيقة دول أبطال قصتنا النهارده  المشكلة اللي بيحلّوها تخيل معايا إنك عملت موديل Linear Regression، والدنيا تمام… لكن فجأة تلاقي نفسك واقع في فخ Overfitting! يعني المودل بقى حافظ الداتا زي الكتاب ما بيقول، بس مش قادر يتعمم كويس لما تعمله Deploy. هنا بنضطر نقبل نسبة Error بسيطة علشان المودل يبقى أذكى في التعامل مع بيانات جديدة. تيجي مشكلة تانية: Multicollinearity. يعني إيه؟ يعني عندك كذا متغير مستقل (independent features) المفروض كل واحد فيهم بيأثر على المتغير التابع (Y). لكن في الواقع، ممكن تلاقي مثلًا X1 و X2 بيأثروا على بعض. ولو الاتنين دول زادوا، X3 بيتغير معاهم. وده بيخلي المودل مش ثابت.   هنا يدخل البطل الأول: Ridge (L2 Regularization) الـ Ridge بيخلي معاملات (coefficients) الفيتشرز قريبة من الصفر. ده بيساعدنا نقلل الـ Multicollinearity ونحافظ على استقرار المودل. لكن سؤال: لو عندي Features كتير جدًا، هل Ridge كفاية؟ الإجابة: لأ. ليه؟ لأن فيه Features ممكن تكون ملهاش لازمة أصلًا.   البطل التاني: Lasso (L1 Regularization) هنا ييجي دور Lasso Regression. الـ Lasso مش بس بيقلل القيم، لكن ممكن يخلي بعض المعاملات بالظبط = صفر . وده معناه إنه بيعمل حاجة اسمها Feature Selection أو اختيار المميزات المهمة بس، ويشيل الباقي.  المقارنة في المشروع في المشروع بتاعنا عملنا مقارنة بين: Linear Regression Ridge Regression Lasso Regression  واستخدمنا K-Fold Cross Validation علشان نقيم الموديلات. كمان خزنا الـ Coefficients و Intercept بتوع كل موديل. وبعدين عملنا Script تاني يستدعي الـ Parameters دي علشان يشتغل كـ API متوصل بواجهة ويب. مشكلة الـ Scaling وأثناء التجربة اكتشفنا مشكلة: لما عملنا Scaling للبيانات أثناء التدريب (Train Data)، لما ييجي User يدخل قيم جديدة، لازم نعمل عليها نفس الـ Scaling اللي عملناه قبل كده. علشان كده خزّنا الـ Scaler نفسه (مثلاً باستخدام joblib) وده اللي بيخلي التوقعات مظبوطة. لو مدخلتش القيم الـ Scaled بشكل صحيح → هتلاقي المخرجات غلط تمامًا. ونخلي المودل جاهز أكتر للشغل العملي. وعلشان أي مشروع يبقى كامل → لازم ناخد بالنا من Scaling + نخزن الـ Parameters + نوصل المودل بالـ API والويب. https://lnkd.in/d_vmB5dF #Python #ScikitLearn #Pandas #NumPy #FastAPI #Joblib #OpenSource #DataEngineer #DataAnalytics #BigData #Coding #Learning

Post content

Video Content