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

Chihab Hedidi

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

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

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

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

    13

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

  1. الانحدار الخطي يستخدم لتحليل العلاقة بين متغيرين أو أكثر، و يتمثل في إيجاد معادلة خطية تعبر عن العلاقة بين المتغير المستقل والمتغير التابع، أما مكتبة Matplotlib نستخدمها بشكل أساسي للتصور، حيث يمكنك رسم البيانات لفهم الأنماط والاتجاهات بطريقة بصرية ثم يمكنك تحليل العلاقة بصريا، و الفرق هنا هو أن الانحدار الخطي يعطيك تحليلا رياضيا دقيقا للعلاقة، بينما Matplotlib هي أداة تصوير بصري، تظهر الاتجاهات والأنماط في البيانات ولكنها لا تقدم تحليلا رياضيا أو تنبؤات.
  2. بالنسبة للكود الأول فأنت تمرر قيمة مزدوجة بين الأقواس، و يعتبر tuple لأنك فصلت بين العنصرين بفاصلة، و مكتبة pandas لا تدعم تحديد الأعمدة باستخدام tuple عند الوصول إلى أعمدة متعددة، وبالتالي ينتج عنه خطأ. أما في الكود الثاني، فأنت تمرر قائمة باستخدام الأقواس المربعة [ ]، و مكتبة pandas تدعم تحديد الأعمدة باستخدام قائمة تحتوي على أسماء الأعمدة، وهذا هو الشكل الصحيح للوصول إلى أعمدة متعددة في DataFrame. بالنسبة للكود الثالث فهنا يتم الوصول إلى عمود واحد فقط باستخدام سلسلة مباشرة، و هذا الشكل مدعوم من pandas، لذا الكود يعمل بشكل صحيح، لكن عند التعامل مع أعمدة متعددة، تحتاج إلى وضعها داخل قائمة [ ]، كما في الكود الثاني.
  3. إذا كنت تريد التنبؤ بمعدلات البقاء على قيد الحياة فقط استخدم العمود efs ، حيث أن هذا العمود يمثل ما إذا كان المريض قد نجا بدون أحداث و في هذه الحالة سيكون النموذج تصنيف، أما إذا كنت تريد التنبؤ بمدة البقاء على قيد الحياة بدون أحداث، استخدم العمود efs_time، حيث أن هذا العمود يمثل عدد الأيام أو الشهور التي عاشها المريض بدون أحداث سلبيةو في هذه الحالة تستخدم الانحدار. أما إذا كنت تريد الجمع بين الاثنين أي التنبؤ بكل من البقاء والمدة يمكنك في هذه الحالة بناء نموذج متعدد الأهداف للتنبؤ بـ efs و efs_time معا، حيث يعمل النموذج على المهمتين في وقت واحد، و هذه الطريقة أكثر تعقيدا ولكنها مفيدة إذا كنت تعتقد أن التنبؤ بقيمة واحدة يمكن أن يساعد في تحسين دقة التنبؤ بالقيمة الأخرى.
  4. نعم يمكنك استخدام عمودين كهدف في عملية التنبؤ، لكن الأمر يعتمد على نوع المشكلة التي تعمل عليها وطبيعة النموذج الذي تستخدمه، إذا كنت تعمل على مشكلة تنبؤ متعددة الأهداف أي أنك ترغب في التنبؤ بقيمتين أو أكثر في آن واحد، يمكنك استخدام أعمدة متعددة في y، و يجب أن يكون النموذج قادر على معالجة المهام المتعددة، يمكن أن تستخدم مكتبات مثل Scikit-Learn باستخدام نماذج مثل MultiOutputRegressor أو MultiOutputClassifier، أو كحالة متقدمة و أكثر تعقيد يمكنك إستخادم مكتبة Keras/TensorFlow حيث تقوم ببناء شبكة عصبية ذات طبقات إخراج متعددة. و أيضا في بعض الحالات قد يكون أحد الأعمدة مثل efs_time مجرد دعم أو مدخل إضافي بدلا من أن يكون هدفا مستقلا، في هذه الحالة يمكنك دمج المعلومات الإضافية كميزات إضافية في X.
  5. هذا الأمر يعود على حسب العنصر، فإذا كان بسيطا جدا ولا يتطلب إعادة استخدام أو تخصيص، مثل نص ثابت أو زر عادي، فمن الأفضل استخدام HTML مباشر لتجنب التعقيد غير المبرر، أما إذا كنت بحاجة إلى ديناميكية، مثل جدول يتغير عدد أعمدته أو صفوفه بناء على البيانات، فإن استخدام مكونات يعزز المرونة ويسهل التعديل مستقبلا، و لكن يجب الانتباه إلى أن المكونات لا ينبغي أن تصبح معقدة جدا أو تحاول تغطية عدد كبير من الحالات المختلفة، لأن ذلك يجعل الكود صعب الفهم والصيانة. و أيضا هذا الأمر يختلف حسب إطار العمل المستخدم، في React وVue يكون التركيز على المكونات، بينما في Angular يمكن الاستفادة من المكونات أو التوجيهات حسب الحاجة، يعني إذا كانت هناك حاجة للديناميكية أو إعادة الاستخدام، فاستخدام المكونات هو الخيار الأفضل، أما إذا كان العنصر ثابت وبسيط، فاستخدام HTML مباشر يوفر الوقت والجهد، و تأكد دائما أن التوازن هو المفتاح لضمان كود منظم وفعال.
  6. التوزيعات الاحتمالية تساعد في توصيف البيانات ومعرفة كيف تتوزع، و هذا لمعرفة هل البيانات تتبع توزيعا طبيعيا، أم توزيعا آخر مثل التوزيع الأسي أو التوزيع الثنائي، و هذا الفهم مهم لتحديد الأدوات والنماذج المناسبة لتحليل البيانات، و أيضا العديد من التحليلات الإحصائية تعتمد على افتراض أن البيانات تتبع توزيعا معينا، فمثلا اختبار T-test يفترض أن البيانات تتبع توزيعا طبيعيا، و الانحدار اللوجستي يعتمد على توزيع برنولي للبيانات الثنائية، و بالتالي معرفة التوزيع يجعل اختيار النموذج أكثر دقة. لذا فإن التوزيعات الاحتمالية أداة قوية لفهم البيانات وتفسيرها، واتخاذ قرارات مدعومة بالإحصاء، و بدون فهم التوزيع قد تكون التحليلات غير دقيقة أو مضللة.
  7. بالنسبة لهذا العمود فهو يمكن أن يكون مفيد حيث أنه بعض الأمراض تكون أكثر شيوعا أو أكثر خطرا في مجموعات عرقية معينة، و أيضا العرق يرتبط غالبا بتغيرات جينية يمكن أن تؤثر على الاستجابة للعلاجات أو الأدوية، فمثلا بعض الطفرات الجينية التي تؤثر على تحمل بعض الأدوية أو الاستجابة لها تكون أكثر شيوعا في مجموعات عرقية معينة، و بالتالي فهذ العوامل تؤثر على النتائج الصحية، مثل الاستعداد الوراثي للأمراض، أو الاستجابة للعلاج، أو حتى التفاوتات الاجتماعية والصحية التي قد تؤثر على جودة الرعاية المقدمة.
  8. ستحتاج إلى تغييرها من خلال الإعدادات في صفحة الحسابات الخاصة بحسوب، ثم إختر المعلومات الشخصية و بعدها يمكنك تحديد الصورة التي تريد و بعد فترة قصيرة سيتم تحديثها عندك في كل المنصات.
  9. إذا كان العمود مهما جدا حاول جمع البيانات المفقودة من مصدر آخر أو إعادة حسابها باستخدام مصادر خارجية، فهذا هو الحل المثالي، أو يمكنك استخدام المتوسط إذا كانت البيانات رقمية ومستقرة بهذا الشكل: df['column_name'].fillna(df['column_name'].mean(), inplace=True) إذا كنت تعمل على مشكلة تتعلق بالتنبؤ، يمكنك تجربة استبعاد الصفوف ذات القيم المفقودة ومقارنة الأداء، لكن هذا قد يؤدي إلى فقدان قدر كبير من البيانات أي 33% فقط متاحة.
  10. إذا كانت بياناتك منظمة وتحتوي على عدد أعمدة كبير ولكن بعدد عينات صغير إلى متوسط، فمن الأفضل البدء بخوارزميات التعلم الآلي التقليدية مثل XGBoost أو Random Forest، حيث إنها فعالة مع البيانات الجدولية وسريعة في التدريب والتفسير، أما إذا كانت بياناتك كبيرة جدا ومعقدة وتحتوي على أنماط غير خطية، ولديك موارد كافية أي GPU قوي، فإن التعلم العميق يكون خيار أفضل، يعني أولا جرب النماذج التقليدية أولا لأنها أسرع وأبسط، ثم انتقل إلى التعلم العميق إذا كانت النتائج غير مرضية.
  11. أنت إخترت مجالات كثيرة و هذا الأمر خاطئ، ركز على المجال الذي يثير اهتمامك أكثر، و اختر مجالا يتناسب مع مهاراتك الحالية أو رغبتك في التعلم، ثم قم بإنشاء سيرة ذاتية و اجعلها مختصرة وتبرز مهاراتك وأي مشاريع أو دراسات ذات صلة، و أيضا قم بإنشاء حساب على LinkedIn و اجعله محدثا ويعرض خبرتك وأهدافك. أما بالنسبة للبحث يمكنك إستخدام مواقع التوظيف المعروفة، أو مراسلة الشركات التي في منطقتك بإيمايل إحترافي و بالتأكيد سيتم الرد عليك و تجد وظيفة أو تدريب في أسرع وقت.
  12. بالنسبة للدورات الخاصة بالأكاديمية فكلها يتم تحديثها بشكل دوري بإضافة مسارات جديدة، أو تحديث المسارات القديمة، و بالتأكيد طلبك سيصل إلى الإدارة و يتم إتخاذه بعين الإعتبار. يمكنك الإطلاع دائما على آخر التحديثات من الصفحة الخاصة بهذا الأمر من خلال هذا الرابط: https://academy.hsoub.com/release-notes/
  13. يمكن استخدام Label Encoding مع أي عمود يحتوي على قيم فريدة، حيث في حالة العمود يحتوي على متغيرات ثنائية فإن Label Encoding يعتبر مناسبا جدا حيث سيتم تحويل القيم إلى 0 و1، مما يسهل معالجتها في النماذج، و في حالة العمود يحتوي على متغيرات متعددة الفئات يمكنك استخدام Label Encoding لتحويل القيم النصية إلى أرقام. أما في حالة وجود عدد كبير جدا من الفئات، قد يؤدي ذلك إلى مشاكل مثل زيادة تعقيد النموذج وصعوبة في التفسير، و في هذه الحالة من الأفضل استخدام One-Hot Encoding، حيث يتم تحويل كل فئة إلى عمود جديد يحتوي على 0 أو 1.
  14. بالنسبة للإختبار للتقدم إليه يجب إنهاء 4 مسارات على الأقل، و بعدها يمكنك التقدم، أما بالنسبة للأسئلة و الإختبار فسيكون حول تلك المسارات فقط و بالتالي إذا لم تدرسي مسار سكراتش فلن يتم وضع أسئلة حوله.
  15. وعليكم السلام ورحمة الله وبركاته، صحيح أن لغة UML مرتبطة أكثر بمفهوم البرمجة الكائنية التوجه، ولكن يمكن استخدامها أيضا في مشاريع تعتمد على Node.js حتى وإن كانت Node.js مبنية على JavaScript، وهي لغة تدعم البرمجة الوظيفية بالإضافة إلى البرمجة الكائنية، حيث يمكنك إستخدام Deployment Diagram لتوضيح خوادم Node.js، قواعد البيانات، وأي خدمات خارجية، و أيضا Component Diagram لتحديد مكونات المشروع مثل وحدات الـ APIs، أو الوحدات المستقلة داخل المشروع. فهذه الأنواع من الرسوم البيانية مفيدة بغض النظر عن نوع البرمجة المستخدم، ف UML يمكن استخدامها لتصميم التدفقات والمنطق المعماري حتى مع الأنظمة المبنية على Node.js، ولكن التركيز يكون على تصميم النظام والتدفق العام وليس فقط الكائنات.
  16. طريقة الكتابة هذه هي شائعة في لغة بايثون، لكنها لا تؤثر على كفاءة الكود أو أدائه، و الهدف الأساسي من كتابة هذا الشكل هو تسهيل استخدام المكتبة بطريقة مختصرة وسهلة القراءة، بدلا من كتابة اسم المكتبة الكامل في كل مرة يمكنك استخدام الاسم المختصر بهذا الشكل: np.array([1, 2, 3]) يعني هو مجرد تحسين لجمالية الكود وقابليته للقراءة، ولا يساهم في تحسين الكفاءة أو الأداء.
  17. الخطأ الذي يظهر لديك يعني أن الكائن 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)
  18. أسباب المشكلة كثيرة، قد يكون HOMA_IR نظريا متغير مهم، ولكن العلاقة بينه وبين Outcome قد تكون غير خطية أو ضعيفة نسبيا، ونموذج SGDRegressor يعتمد على العلاقات الخطية، وبالتالي قد يفشل في التعرف على العلاقات غير الخطية، جرب نماذج تدعم العلاقات غير الخطية مثل Random Forest Regressor، أو Gradient Boosting Models مثل XGBoost.
  19. ليس من الضروري تثبيت لغة ++C نفسها لتشغيل بايثون أو مكتباتها، ولكن هناك بعض المكتبات تعتمد على مكتبات مكتوبة بلغة ++C أو لغات أخرى لتحسين الأداء، و أثناء تثبيت هذه المكتبات، يتم أحيانا استخدام أدوات بناء مثل CMake أو GCC لترجمة الأكواد المصدرية الخاصة بها، و لحل هذه المشكلة يجب عليك تثبيت Visual Studio Build Tools فقط.
  20. الكود الذي أرفقته لا يؤثر على العمود HOMA_IR و بالتالي ربما في جزء أخر من الكود هو المسؤول عن حذف العمود، أي ربما تم حذفه أثناء عملية المعالجة المسبقة للبيانات Preprocessing عن طريق الخطأ، لذا تحقق من وجود HOMA_IR في بيانات x_train_scaled و x_test_scaled بعد معالجة البيانات عن طريق هذا الكود: print(x_train_scaled.columns) إذا لم يكن العمود موجود، فستحتاج إلى إضافته مرة أخرى قبل التدريب.
  21. بالتأكيد وجود خلفية سابقة في لغات HTML و CSS يلعب دورا كبيرا في شعورك بأن المحاضر يمر على المواضيع بسرعة،عندما تكون لديك معرفة مسبقة يصبح استيعاب المحتوى أسرع، وقد تشعر أن الشرح مختصر، أما بالنسبة لقصر مدة الفيديوهات فهذا لأنه يتم الإعتماد على تقديم أهم النقاط دون إطالة غير ضرورية، وللحفاظ على تركيز المتعلم وتجنب الشعور بالملل، و إذا كان لديك أي جزء من الفيديو غير مفهوم يمكنك دائما طرح تساؤلك أسفل الفيديو.
  22. نعم يمكنك شراء اسم دومين واستخدامه هذه المنصات تدعم استخدام الدومينات المخصصة بسهولة، Namecheap، Google Domains ،GoDaddy و غيرها و تحقق من توفره أولا ثم من خلال لوحة التحكم يمكنك إعدادات الدومين مع Cloudflare Pages.
  23. إذا كنت ترى أن هذه المقدمة تغطي مفاهيم أنت بالفعل ملم بها ولديك فهم جيد لها، فمن الممكن تجاوزها والتركيز على المسارات الأخرى، و لكن أنصحك بمراجعة سريعة لمحتواها حتى و لو بدون تطبيق للتأكد من أنك لم تفوت أي مفاهيم أساسية قد تكون مهمة لاحقا، فالبرمجة تعتمد بشكل كبير على الأساسيات، وأي فجوة فيها قد تؤثر على فهمك للمواضيع الأكثر تعقيدا.
  24. بما أن النموذج المستخدم في الكود هو RandomForestRegressor، فإن التقييم لا يعتمد عادة على النسبة المئوية للدقة كما هو الحال في التصنيف، بل يعتمد على أخطاء القياس مثل Mean Squared Error وهو يقيس متوسط مربع الأخطاء بين القيم الحقيقية والقيم المتوقعة. أو يمكنك إستخدام R² Score وهو مقياس شائع يعطي فكرة عن مدى جودة النموذج في تفسير البيانات، حيث أن قيمة 1.0 تعني أن النموذج يفسر البيانات بشكل كامل و بالتالي 0.90 تعني أن النموذج يفسر 90% من التباين في البيانات.
  25. نعم يمكنك استخدام مكتبات التعلم الآلي مثل Scikit-learn لتنفيذ هذه الأمور، فهذه المكتبة تحتوي على العديد من الدوال التي تساعدك في هذا الأمر.
×
×
  • أضف...