اذهب إلى المحتوى

Chihab Hedidi

الأعضاء
  • المساهمات

    2193
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    13

كل منشورات العضو Chihab Hedidi

  1. على الرغم من أن الجملتين قد تبدوان متشابهتين، إلا أنهما تنتجان نتائج مختلفة بسبب كيفية التعامل مع الأعمدة الإضافية بجانب الأعمدة المحسوبة، حيث في الإستعلام الأول يتم تحديد أول سنة لكل منتج باستخدام الاستعلام الداخلي، و يتم بعد ذلك مطابقة السجل بالكامل بناء على product_id, year مع النتيجة المحسوبة من الاستعلام الداخلي، و هذا يعني أنه يتم تحديد سجل واحد فقط لكل منتج يتوافق مع أصغر سنة و النتيجة تكون كل منتج سيظهر مرة واحدة مع بيانات quantity وprice التي تتوافق مع السنة الأولى. أما في الكود الثاني هنا يتم استخدام group by مع product_id، و يتم حساب أصغر سنة لكل منتج، ولكن الأعمدة الأخرى ليست ضمن الدالة التجميعية أو في عبارة group by، و في معظم قواعد البيانات، ستقوم قاعدة البيانات باختيار قيمة عشوائية أو غير محددة من الأعمدة الإضافية quantity وprice للسجلات المتعلقة بكل مجموعة.
  2. ستجد أسفل فيديو الدورة مكان لإضافة التعليق هناك، أرجوا كتابة المشكلة التي عندك في تلك الخانة، فهنا نطرح الأسئلة العامة فقط.
  3. هو أداة إحصائية تستخدم لتقييم الأفكار أو الادعاءات حول مجموعة بيانات معينة، و الهدف الأساسي من اختبار الفرضيات هو تحديد ما إذا كان هناك دليل كاف في عينة البيانات لدعم فرضية معينة أو رفضها بالنسبة لمجتمع البيانات الأكبر، و له علاقة وثيقة بالإعلام الآلي، خاصة في المجالات التي تعتمد على تحليل البيانات، الذكاء الاصطناعي، وتعلم الآلة، حيث نستخدمه في تحليل البيانات لتقييم الفروق بين المجموعات أو قياس تأثير التغييرات، مثل اختبار أداء خوارزمية جديدة مقارنة بالأداء السابق، وفي تعلم الآلة يساعد اختبار الفرضيات في مقارنة دقة النماذج وتحديد إذا ما كانت الفروقات بين أدائها حقيقية وليست ناتجة عن الصدفة.
  4. ال Regularization هو مفهوم في مجال تعلم الآلة يستخدم لتقليل مشكلة overfitting، أي عندما يكون النموذج مدربا بشكل زائد على بيانات التدريب بحيث يصبح أداؤه ضعيفا على البيانات الجديدة، حيث عندما تقوم ببناء نموذج معقد للغاية مثل نموذج ذو عدد كبير من المعاملات أو الشبكات العصبية العميقة، قد يتعلم النموذج التعرف على الضوضاء الموجودة في بيانات التدريب بدلا من الأنماط العامة، و يأتي هنا دور Regularization حيث يساعد في تقليل هذا التعقيد وضمان أن النموذج يركز على الأنماط المهمة فقط.
  5. لا يمكنك استخدام التوزيع الطبيعي على البيانات الفئوية، لأن التوزيع الطبيعي يستخدم لتمثيل البيانات الكمية التي تكون مستمرة، مثل الوزن، درجات الحرارة و غيرها، أما البيانات الفئوية فهي عبارة عن بيانات تصنف العناصر إلى فئات أو مجموعات و هذه البيانات لا تتبع توزيعات مثل التوزيع الطبيعي لأنها ليست مستمرة، فالقيم تكون عبارة عن تسميات أو فئات، وليس أرقاما قابلة للقياس بشكل متصل، و أيضا لا يوجد متوسط وانحراف معياري بالمعنى المستخدم في التوزيع الطبيعي، فالقيم الفئوية لا تُستخدم لحساب الخصائص الإحصائية المرتبطة بالتوزيع الطبيعي. هناك توزيعات أخرى قد تكون أكثر ملاءمة، حيث يمكنك الإعتماد على التوزيع متعدد الحدود أو التوزيع الثنائي.
  6. الانحدار الخطي يستخدم لتحليل العلاقة بين متغيرين أو أكثر، و يتمثل في إيجاد معادلة خطية تعبر عن العلاقة بين المتغير المستقل والمتغير التابع، أما مكتبة Matplotlib نستخدمها بشكل أساسي للتصور، حيث يمكنك رسم البيانات لفهم الأنماط والاتجاهات بطريقة بصرية ثم يمكنك تحليل العلاقة بصريا، و الفرق هنا هو أن الانحدار الخطي يعطيك تحليلا رياضيا دقيقا للعلاقة، بينما Matplotlib هي أداة تصوير بصري، تظهر الاتجاهات والأنماط في البيانات ولكنها لا تقدم تحليلا رياضيا أو تنبؤات.
  7. بالنسبة للكود الأول فأنت تمرر قيمة مزدوجة بين الأقواس، و يعتبر tuple لأنك فصلت بين العنصرين بفاصلة، و مكتبة pandas لا تدعم تحديد الأعمدة باستخدام tuple عند الوصول إلى أعمدة متعددة، وبالتالي ينتج عنه خطأ. أما في الكود الثاني، فأنت تمرر قائمة باستخدام الأقواس المربعة [ ]، و مكتبة pandas تدعم تحديد الأعمدة باستخدام قائمة تحتوي على أسماء الأعمدة، وهذا هو الشكل الصحيح للوصول إلى أعمدة متعددة في DataFrame. بالنسبة للكود الثالث فهنا يتم الوصول إلى عمود واحد فقط باستخدام سلسلة مباشرة، و هذا الشكل مدعوم من pandas، لذا الكود يعمل بشكل صحيح، لكن عند التعامل مع أعمدة متعددة، تحتاج إلى وضعها داخل قائمة [ ]، كما في الكود الثاني.
  8. إذا كنت تريد التنبؤ بمعدلات البقاء على قيد الحياة فقط استخدم العمود efs ، حيث أن هذا العمود يمثل ما إذا كان المريض قد نجا بدون أحداث و في هذه الحالة سيكون النموذج تصنيف، أما إذا كنت تريد التنبؤ بمدة البقاء على قيد الحياة بدون أحداث، استخدم العمود efs_time، حيث أن هذا العمود يمثل عدد الأيام أو الشهور التي عاشها المريض بدون أحداث سلبيةو في هذه الحالة تستخدم الانحدار. أما إذا كنت تريد الجمع بين الاثنين أي التنبؤ بكل من البقاء والمدة يمكنك في هذه الحالة بناء نموذج متعدد الأهداف للتنبؤ بـ efs و efs_time معا، حيث يعمل النموذج على المهمتين في وقت واحد، و هذه الطريقة أكثر تعقيدا ولكنها مفيدة إذا كنت تعتقد أن التنبؤ بقيمة واحدة يمكن أن يساعد في تحسين دقة التنبؤ بالقيمة الأخرى.
  9. نعم يمكنك استخدام عمودين كهدف في عملية التنبؤ، لكن الأمر يعتمد على نوع المشكلة التي تعمل عليها وطبيعة النموذج الذي تستخدمه، إذا كنت تعمل على مشكلة تنبؤ متعددة الأهداف أي أنك ترغب في التنبؤ بقيمتين أو أكثر في آن واحد، يمكنك استخدام أعمدة متعددة في y، و يجب أن يكون النموذج قادر على معالجة المهام المتعددة، يمكن أن تستخدم مكتبات مثل Scikit-Learn باستخدام نماذج مثل MultiOutputRegressor أو MultiOutputClassifier، أو كحالة متقدمة و أكثر تعقيد يمكنك إستخادم مكتبة Keras/TensorFlow حيث تقوم ببناء شبكة عصبية ذات طبقات إخراج متعددة. و أيضا في بعض الحالات قد يكون أحد الأعمدة مثل efs_time مجرد دعم أو مدخل إضافي بدلا من أن يكون هدفا مستقلا، في هذه الحالة يمكنك دمج المعلومات الإضافية كميزات إضافية في X.
  10. هذا الأمر يعود على حسب العنصر، فإذا كان بسيطا جدا ولا يتطلب إعادة استخدام أو تخصيص، مثل نص ثابت أو زر عادي، فمن الأفضل استخدام HTML مباشر لتجنب التعقيد غير المبرر، أما إذا كنت بحاجة إلى ديناميكية، مثل جدول يتغير عدد أعمدته أو صفوفه بناء على البيانات، فإن استخدام مكونات يعزز المرونة ويسهل التعديل مستقبلا، و لكن يجب الانتباه إلى أن المكونات لا ينبغي أن تصبح معقدة جدا أو تحاول تغطية عدد كبير من الحالات المختلفة، لأن ذلك يجعل الكود صعب الفهم والصيانة. و أيضا هذا الأمر يختلف حسب إطار العمل المستخدم، في React وVue يكون التركيز على المكونات، بينما في Angular يمكن الاستفادة من المكونات أو التوجيهات حسب الحاجة، يعني إذا كانت هناك حاجة للديناميكية أو إعادة الاستخدام، فاستخدام المكونات هو الخيار الأفضل، أما إذا كان العنصر ثابت وبسيط، فاستخدام HTML مباشر يوفر الوقت والجهد، و تأكد دائما أن التوازن هو المفتاح لضمان كود منظم وفعال.
  11. التوزيعات الاحتمالية تساعد في توصيف البيانات ومعرفة كيف تتوزع، و هذا لمعرفة هل البيانات تتبع توزيعا طبيعيا، أم توزيعا آخر مثل التوزيع الأسي أو التوزيع الثنائي، و هذا الفهم مهم لتحديد الأدوات والنماذج المناسبة لتحليل البيانات، و أيضا العديد من التحليلات الإحصائية تعتمد على افتراض أن البيانات تتبع توزيعا معينا، فمثلا اختبار T-test يفترض أن البيانات تتبع توزيعا طبيعيا، و الانحدار اللوجستي يعتمد على توزيع برنولي للبيانات الثنائية، و بالتالي معرفة التوزيع يجعل اختيار النموذج أكثر دقة. لذا فإن التوزيعات الاحتمالية أداة قوية لفهم البيانات وتفسيرها، واتخاذ قرارات مدعومة بالإحصاء، و بدون فهم التوزيع قد تكون التحليلات غير دقيقة أو مضللة.
  12. بالنسبة لهذا العمود فهو يمكن أن يكون مفيد حيث أنه بعض الأمراض تكون أكثر شيوعا أو أكثر خطرا في مجموعات عرقية معينة، و أيضا العرق يرتبط غالبا بتغيرات جينية يمكن أن تؤثر على الاستجابة للعلاجات أو الأدوية، فمثلا بعض الطفرات الجينية التي تؤثر على تحمل بعض الأدوية أو الاستجابة لها تكون أكثر شيوعا في مجموعات عرقية معينة، و بالتالي فهذ العوامل تؤثر على النتائج الصحية، مثل الاستعداد الوراثي للأمراض، أو الاستجابة للعلاج، أو حتى التفاوتات الاجتماعية والصحية التي قد تؤثر على جودة الرعاية المقدمة.
  13. ستحتاج إلى تغييرها من خلال الإعدادات في صفحة الحسابات الخاصة بحسوب، ثم إختر المعلومات الشخصية و بعدها يمكنك تحديد الصورة التي تريد و بعد فترة قصيرة سيتم تحديثها عندك في كل المنصات.
  14. إذا كان العمود مهما جدا حاول جمع البيانات المفقودة من مصدر آخر أو إعادة حسابها باستخدام مصادر خارجية، فهذا هو الحل المثالي، أو يمكنك استخدام المتوسط إذا كانت البيانات رقمية ومستقرة بهذا الشكل: df['column_name'].fillna(df['column_name'].mean(), inplace=True) إذا كنت تعمل على مشكلة تتعلق بالتنبؤ، يمكنك تجربة استبعاد الصفوف ذات القيم المفقودة ومقارنة الأداء، لكن هذا قد يؤدي إلى فقدان قدر كبير من البيانات أي 33% فقط متاحة.
  15. إذا كانت بياناتك منظمة وتحتوي على عدد أعمدة كبير ولكن بعدد عينات صغير إلى متوسط، فمن الأفضل البدء بخوارزميات التعلم الآلي التقليدية مثل XGBoost أو Random Forest، حيث إنها فعالة مع البيانات الجدولية وسريعة في التدريب والتفسير، أما إذا كانت بياناتك كبيرة جدا ومعقدة وتحتوي على أنماط غير خطية، ولديك موارد كافية أي GPU قوي، فإن التعلم العميق يكون خيار أفضل، يعني أولا جرب النماذج التقليدية أولا لأنها أسرع وأبسط، ثم انتقل إلى التعلم العميق إذا كانت النتائج غير مرضية.
  16. أنت إخترت مجالات كثيرة و هذا الأمر خاطئ، ركز على المجال الذي يثير اهتمامك أكثر، و اختر مجالا يتناسب مع مهاراتك الحالية أو رغبتك في التعلم، ثم قم بإنشاء سيرة ذاتية و اجعلها مختصرة وتبرز مهاراتك وأي مشاريع أو دراسات ذات صلة، و أيضا قم بإنشاء حساب على LinkedIn و اجعله محدثا ويعرض خبرتك وأهدافك. أما بالنسبة للبحث يمكنك إستخدام مواقع التوظيف المعروفة، أو مراسلة الشركات التي في منطقتك بإيمايل إحترافي و بالتأكيد سيتم الرد عليك و تجد وظيفة أو تدريب في أسرع وقت.
  17. بالنسبة للدورات الخاصة بالأكاديمية فكلها يتم تحديثها بشكل دوري بإضافة مسارات جديدة، أو تحديث المسارات القديمة، و بالتأكيد طلبك سيصل إلى الإدارة و يتم إتخاذه بعين الإعتبار. يمكنك الإطلاع دائما على آخر التحديثات من الصفحة الخاصة بهذا الأمر من خلال هذا الرابط: https://academy.hsoub.com/release-notes/
  18. يمكن استخدام Label Encoding مع أي عمود يحتوي على قيم فريدة، حيث في حالة العمود يحتوي على متغيرات ثنائية فإن Label Encoding يعتبر مناسبا جدا حيث سيتم تحويل القيم إلى 0 و1، مما يسهل معالجتها في النماذج، و في حالة العمود يحتوي على متغيرات متعددة الفئات يمكنك استخدام Label Encoding لتحويل القيم النصية إلى أرقام. أما في حالة وجود عدد كبير جدا من الفئات، قد يؤدي ذلك إلى مشاكل مثل زيادة تعقيد النموذج وصعوبة في التفسير، و في هذه الحالة من الأفضل استخدام One-Hot Encoding، حيث يتم تحويل كل فئة إلى عمود جديد يحتوي على 0 أو 1.
  19. بالنسبة للإختبار للتقدم إليه يجب إنهاء 4 مسارات على الأقل، و بعدها يمكنك التقدم، أما بالنسبة للأسئلة و الإختبار فسيكون حول تلك المسارات فقط و بالتالي إذا لم تدرسي مسار سكراتش فلن يتم وضع أسئلة حوله.
  20. وعليكم السلام ورحمة الله وبركاته، صحيح أن لغة UML مرتبطة أكثر بمفهوم البرمجة الكائنية التوجه، ولكن يمكن استخدامها أيضا في مشاريع تعتمد على Node.js حتى وإن كانت Node.js مبنية على JavaScript، وهي لغة تدعم البرمجة الوظيفية بالإضافة إلى البرمجة الكائنية، حيث يمكنك إستخدام Deployment Diagram لتوضيح خوادم Node.js، قواعد البيانات، وأي خدمات خارجية، و أيضا Component Diagram لتحديد مكونات المشروع مثل وحدات الـ APIs، أو الوحدات المستقلة داخل المشروع. فهذه الأنواع من الرسوم البيانية مفيدة بغض النظر عن نوع البرمجة المستخدم، ف UML يمكن استخدامها لتصميم التدفقات والمنطق المعماري حتى مع الأنظمة المبنية على Node.js، ولكن التركيز يكون على تصميم النظام والتدفق العام وليس فقط الكائنات.
  21. طريقة الكتابة هذه هي شائعة في لغة بايثون، لكنها لا تؤثر على كفاءة الكود أو أدائه، و الهدف الأساسي من كتابة هذا الشكل هو تسهيل استخدام المكتبة بطريقة مختصرة وسهلة القراءة، بدلا من كتابة اسم المكتبة الكامل في كل مرة يمكنك استخدام الاسم المختصر بهذا الشكل: np.array([1, 2, 3]) يعني هو مجرد تحسين لجمالية الكود وقابليته للقراءة، ولا يساهم في تحسين الكفاءة أو الأداء.
  22. الخطأ الذي يظهر لديك يعني أن الكائن x_train_scaled هو مصفوفة، وليس كائن DataFrame من مكتبة Pandas، و المصفوفات في Numpy لا تحتوي على أسماء أعمدة، ولذلك لا يمكنك استخدام columns. إذا كنت قد قمت بتقييس البيانات باستخدام مكتبة مثل StandardScaler من sklearn، فمن الطبيعي أن تكون النتيجة عبارة عن مصفوفة Numpy، و لجعل الأمور أسهل، يمكنك تحويل المصفوفة مرة أخرى إلى DataFrame باستخدام الأعمدة الأصلية: import pandas as pd x_train_scaled_df = pd.DataFrame(x_train_scaled, columns=x_train.columns) print(x_train_scaled_df.columns)
  23. أسباب المشكلة كثيرة، قد يكون HOMA_IR نظريا متغير مهم، ولكن العلاقة بينه وبين Outcome قد تكون غير خطية أو ضعيفة نسبيا، ونموذج SGDRegressor يعتمد على العلاقات الخطية، وبالتالي قد يفشل في التعرف على العلاقات غير الخطية، جرب نماذج تدعم العلاقات غير الخطية مثل Random Forest Regressor، أو Gradient Boosting Models مثل XGBoost.
  24. ليس من الضروري تثبيت لغة ++C نفسها لتشغيل بايثون أو مكتباتها، ولكن هناك بعض المكتبات تعتمد على مكتبات مكتوبة بلغة ++C أو لغات أخرى لتحسين الأداء، و أثناء تثبيت هذه المكتبات، يتم أحيانا استخدام أدوات بناء مثل CMake أو GCC لترجمة الأكواد المصدرية الخاصة بها، و لحل هذه المشكلة يجب عليك تثبيت Visual Studio Build Tools فقط.
  25. الكود الذي أرفقته لا يؤثر على العمود HOMA_IR و بالتالي ربما في جزء أخر من الكود هو المسؤول عن حذف العمود، أي ربما تم حذفه أثناء عملية المعالجة المسبقة للبيانات Preprocessing عن طريق الخطأ، لذا تحقق من وجود HOMA_IR في بيانات x_train_scaled و x_test_scaled بعد معالجة البيانات عن طريق هذا الكود: print(x_train_scaled.columns) إذا لم يكن العمود موجود، فستحتاج إلى إضافته مرة أخرى قبل التدريب.
×
×
  • أضف...