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

Chihab Hedidi

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

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

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

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

    13

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

  1. يمكنك تقسيم الرسوم البيانية إلى شبكة تحتوي على 4 رسومات باستخدام مكتبة matplotlib لإنشاء شبكة من المحاور، و بهذه الطريقة يمكنك عرض الرسومات المختلفة بشكل مرتب في نافذة واحدة و يكون التعريف بهذا الشكل: from matplotlib import pyplot as plt from lifelines import KaplanMeierFitter # Create a Kaplan-Meier object kaplanmeierfitter = KaplanMeierFitter() # تحديد الشبكة (2×2) fig, axes = plt.subplots(2, 2, figsize=(15, 10)) # 2 صفوف × 2 أعمدة # تحويل الشبكة إلى قائمة لتسهيل التكرار axes = axes.flatten() # Iterate through each unique combination of 'cyto_score', 'tbi_status', 'graft_type', and 'vent_hist' groups = data_train.groupby(['cyto_score', 'tbi_status', 'graft_type', 'vent_hist']).groups for i, (group_key, group_indices) in enumerate(groups.items()): # التوقف إذا تم رسم 4 رسومات فقط if i >= 4: break # Filter the data based on the current group group_data = data_train.loc[group_indices] # Fit the Kaplan-Meier model kaplanmeierfitter.fit(group_data['efs_time'], event_observed=group_data['efs'], label=f'cyto_score {group_key[0]}, tbi_status {group_key[1]}, graft_type {group_key[2]}, vent_hist {group_key[3]}') # Plot on the corresponding subplot kaplanmeierfitter.plot_survival_function(ax=axes[i], color=plt.cm.tab10(group_data['cyto_score'] % 10)) # Customize each subplot axes[i].set_title(f'Group: cyto_score {group_key[0]}, tbi_status {group_key[1]}') axes[i].set_xlabel('Time (months)') axes[i].set_ylabel('Survival Probability') # تحسين المسافات بين الرسومات plt.tight_layout() # عرض الرسوم plt.show() هكذا يتم إنشاء شبكة من الرسومات باستخدام plt.subplots(2, 2) مما يعني 4 رسومات أي 2 صفوف × 2 أعمدة، و أيضا استخدمنا axes.flatten() لتحويل المحاور إلى قائمة لتسهيل التكرار عليها، ثم نقوم بتحديد عدد الرسومات لا يزيد عن 4 باستخدام الشرط، و كل مجموعة يتم رسمها على المحور الخاص بها باستخدام ax=axes[i].
  2. تحليل Kaplan-Meier هو تقنية إحصائية تستخدم لتقدير دالة البقاء وتحليل الوقت حتى حدوث حدث معين، مثل الوفاة أو الشفاء، و نستخدم هذا التحليل بشكل واسع في الأبحاث الطبية لدراسة بقاء المرضى بعد تشخيص مرض أو تلقي علاج، وفي مجالات أخرى مثل الهندسة لتحليل موثوقية الأنظمة، أو في الأعمال لدراسة مدة احتفاظ العملاء بالخدمات، و تعتمد الطريقة على تقسيم البيانات إلى خطوات زمنية بناء على الأوقات التي حدث فيها الحدث المدروس، مع حساب احتمال البقاء عند كل نقطة زمنية، حيث يأخذ Kaplan-Meier في الحسبان البيانات غير المكتملة مثل المرضى الذين خرجوا من الدراسة قبل حدوث الحدث، مما يجعله أداة فعالة لتحليل بيانات البقاء.
  3. الفرق يكمن في الهدف الأساسي لكل مكتبة، والأسلوب الذي توفره لتحليل البيانات أو بناء النماذج، فالهدف الرئيسي لكل مكتبة statsmodels هي أنها مصممة خصيصا للتحليل الإحصائي وبناء النماذج التفسيرية حيث توفر تفاصيل دقيقة وشاملة حول النماذج، مثل الإحصائيات الخاصة بالمتغيرات، و تركز على فهم العلاقات بين المتغيرات والاختبارات الإحصائية. بينما scikit-learn موجهة أكثر نحو التعلم الآلي وبناء النماذج التنبؤية، و نستخدمها لتطوير النماذج السريعة وتحقيق أفضل أداء للتنبؤات، و لا توفر نفس مستوى التحليل الإحصائي العميق الذي توفره statsmodels. لذا فدائما يجب عليك إختيار المكتبة المناسبة بناء على إحتياجات المشروع الخاص بك، و إذا كنت تريد الجمع بين الميزتين، يمكنك استخدام scikit-learn لتطوير النموذج سريعا ثم statsmodels لتحليل النتائج بتفصيل أكثر.
  4. نوع البيانات التي تتعامل معها في كل حالة تختلف حسب طبيعة النموذج، بالنسبة لـ OLS، يمكن أن تكون X أي نوع من المتغيرات العددية أو حتى متغيرات فئوية بعد تحويلها إلى متغيرات رقمية باستخدام طرق مثل One-Hot Encoding، و الأمر نفسه مع y حيث يجب أن يكون عدديا ومستمرا، وهذا لأننا نستخدم OLS عندما يكون الهدف هو التنبؤ بقيمة مستمرة. و بالنسبة لـ Logistic Regression نفس الأمر مثل OLS يمكن أن تكون عددية أو فئوية مع تحويل الفئوية إلى رقمية، أما y يجب أن يكون فئوي، حيث إذا كنت تتعامل مع مشكلة تصنيف ثنائية، يجب أن يكون y يحتوي على قيم مثل 0 و 1 أو نعم ولا.
  5. من المهم فهم تأثير كل عمود على النتيجة المستهدفة، و لكن يجب أن تأخذ في الاعتبار أن بعض الأعمدة قد لا يكون لها تأثير مباشر على المرض نفسه، بل قد تؤثر بشكل غير مباشر من خلال علاقتها بميزات أخرى، فمثلا قد يكون هناك عمود مثل "النشاط البدني" ليس له تأثير واضح على المرض بشكل مباشر، ولكنه يؤثر على الوزن أو مستوى السكر في الدم، وهذان العاملان لهما تأثير مباشر على مرض السكري، لذا من الأفضل استخدام تقنيات تحليل البيانات لاكتشاف العلاقات بين الميزات المختلفة، وأيضا تطبيق تقنيات التعلم الآلي أو تحليل الأهميةلتحديد التأثير المباشر وغير المباشر لكل عمود.
  6. مكتبة PyCaret هي مكتبة مفتوحة المصدر تستخدم لتبسيط عملية بناء نماذج التعلم الآلي، و تهدف إلى تسهيل التعامل مع البيانات وتحليلها، حيث توفر أدوات لإنشاء النماذج، وتحليل الأداء، وتحسين النماذج بكل سهولة، و تشمل وظائف المكتبة معالجة البيانات المفقودة، وتقسيم البيانات، وتحويل الميزات، واختيار النموذج الأنسب، وتقييم أداء النموذج بشكل آلي، و بفضل واجهتها البسيطة والمباشرة يمكن للمستخدمين، سواء كانوا مبتدئين أو محترفين، بناء نماذج تعلم آلي بسرعة دون الحاجة إلى كتابة الكثير من الشيفرات المعقدة.
  7. نستخدم الـ ANCOVA عندما نريد دمج تحليل التباين مع تحليل الانحدار الخطي، و الفرق الرئيسي بين الاثنين هو أن الـ ANCOVA يأخذ في الاعتبار المتغيرات المستقلة التي قد تؤثر على المتغير التابع ويقوم بتعديل التباين بناء عليها، مما يساعد في التخلص من تأثير المتغيرات غير المرغوب فيها. و بالتالي التحليل الخطي ينظر في العلاقة بين المتغير التابع والمتغير المستقل، بينما الـ ANCOVA يضيف مكون التحكم في المتغيرات الأخرى لتقليل تأثيرها على العلاقة بين المتغيرات المستقلة والمتغير التابع، و يعتبر مفيد عندما نحتاج لمقارنة مجموعات متعددة ولكن مع التحكم في تأثيرات المتغيرات الأخرى التي قد تكون لها تأثير على النتائج.
  8. مرحبا حاتم، بالنسبة لموعد تواجد المدربين فهو يختلف من وقت لآخر و لكن يمكنك دائما طرح أسئلتك في أي وقت تريد و فور توفر أحد المدربين سيتكفل بمساعدتك، وبالتأكيد تختلف أوقات تواجدهم و يكون بشكل كبير في أوقات منتصف النهار إلى آخر الليل. و بسبب إختلاف الوقت بين المدربين و الطلبة ربما يكون هناك أوقات لا يتوفر فيه أي مدرب، و مع ذلك يمكنك دائما طرح سؤالك و كن متأكد أنه سيتم مساعدتك في أقرب وقت ممكن.
  9. بالنسبة ل XGBoost هي اختصارا لـ "Extreme Gradient Boosting" وهي مكتبة مفتوحة المصدر تستخدم في التعلم الآلي لتحسين أداء النماذج التنبؤية، و تعتمد على تقنية تحسين التدرج لبناء نماذج تعتمد على تجميع الأشجار بشكل متسلسل، حيث تحاول كل شجرة جديدة تقليل الأخطاء التي وقعت فيها الأشجار السابقة، حيث يتم ذلك من خلال حساب التدرج لتحديد الأخطاء التي يجب تصحيحها، وبالتالي يتم تحسين النموذج بشكل تدريجي، و تعتبر XGBoost واحدة من أفضل التقنيات في المسابقات العالمية للتعلم الآلي مثل Kaggle نظرا لسرعتها العالية وكفاءتها في التعامل مع البيانات الكبيرة والمعقدة. لاستخدام XGBoost، يمكن تثبيتها عبر مكتبة Python باستخدام الأمر pip install xgboost بعدها يمكن استخدامها مع مكتبات مثل Scikit-learn لتدريب النموذج من خلال استدعاء واجهة مشابهة مثل XGBClassifier أو XGBRegressor، وضبط المعلمات مثل معدل التعلم وعدد الأشجار للحصول على أفضل أداء.
  10. نعم مكتبة Seaborn تحتوي على مجموعة مدمجة من البيانات يمكن استخدامها لاختبار الرسوم البيانية وتجربة المكتبة، للوصول إلى هذه البيانات، يمكنك استخدام الدالة seaborn.get_dataset_names() لمعرفة أسماء مجموعات البيانات المتوفرة، ومن ثم تحميل أي منها باستخدام الدالة seaborn.load_dataset() بهذا الشكل: import seaborn as sns # عرض أسماء مجموعات البيانات المتوفرة print(sns.get_dataset_names()) # تحميل مجموعة البيانات 'tips' data = sns.load_dataset('tips') # عرض أول 5 صفوف من البيانات print(data.head()) بالتوفيق إن شاء الله.
  11. يمكنك التكملة من حيث توقفتي و لكن إذا شهرتي أنك لم تفهمي الدروس جيدا أو أنك تجد صعوبة في العديد من المصطلحات من الأفضل إعادة مشاهدة الفيديوهات القديمة و لكن يمكنك تسريع الفيديو لأنك شاهدتها من قبل و بالتالي إعادة المشاهدة تجعلك تتذكرين ما درستيه من قبل، كما يمكنك الإطلاع على هذه الإجابة التي ستفيدك:
  12. بالنسبة للإنحدار الخطي باستخدام متغير واحد يعتمد على علاقة بين متغير مستقل واحد ومتغير تابع، و في هذا النوع الهدف هو إيجاد معادلة خطية تمثل هذه العلاقة، حيث يكون شكل المعادلة هو y=mx+cy = mx + c، حيث mm هو الميل وcc هو التقاطع، و يستخدم هذا النموذج في الحالات التي يكون فيها المتغير المستقل كافياً للتنبؤ بالمتغير التابع. أما الانحدار الخطي باستخدام أكثر من متغير ، فيأخذ في الاعتبار أكثر من متغير مستقل للتنبؤ بالمتغير التابع، و تكون المعادلة الخطية في هذه الحالة على الشكل: y=b0+b1x1+b2x2+⋯+bnxn ، حيث يمثل كل xix_i متغير مستقل، وbib_i هي المعاملات المرتبطة بهذه المتغيرات، و يتميز هذا النموذج بقدرته على التعامل مع بيانات أكثر تعقيدا، حيث يمكنه تفسير التأثير المشترك لمجموعة من العوامل على المتغير التابع.
  13. رسالة الخطأ التي تظهر تعني أن شهادة SSL الخاصة بالموقع لا تتطابق مع اسم النطاق الخاص بك، هذا يحدث عادة عندما يتم إعداد شهادة SSL لنطاق مختلف عن النطاق الذي تحاول الوصول إليه، لذا تأكد من أن اسم النطاق الذي تستخدمه في متصفحك يتطابق مع النطاق الذي تم إعداد شهادة SSL له. لذا يجب التحقق من إعدادات SSL في الاستضافة، سجل الدخول إلى لوحة التحكم الخاصة بموقعك، و اذهب إلى قسم SSL/TLS أو Certificates، و تحقق مما إذا كانت الشهادة مثبتة بشكل صحيح وتغطي النطاق الخاص بك، و إذا كانت الشهادة قديمة أو منتهية، قم بتجديدها، يمكنك استخدام خدمات مثل Let’s Encrypt لتثبيت شهادة SSL مجانية.
  14. الدالة crosstab في مكتبة Pandas تستخدم لإنشاء جداول تقاطع، و تظهر العلاقة بين متغيرين أو أكثر بطريقة منظمة وسهلة الفهم، و تعمل على عد التكرارات لكل مزيج من القيم بين الأعمدة والصفوف، كما يمكنها تلخيص القيم باستخدام دوال إحصائية مثل المجموع أو المتوسط عبر معامل aggfunc، و تعتبر أداة قوية لتحليل البيانات واستخراج التوزيعات أو الأنماط، مع إمكانية إضافة مجاميع الصفوف والأعمدة، وتطبيع النتائج إلى نسب مئوية، و تستخدم بشكل شائع في استكشاف البيانات واستخراج إحصائيات تلخيصية لتقديم رؤى واضحة عن العلاقات بين المتغيرات.
  15. بالنسبة لتحليل التباين المشترك هو أسلوب إحصائي يجمع بين تحليل التباين وتحليل الانحدار، ونستخدمه لتقييم الفروق بين متوسطات المجموعات مع الأخذ في الاعتبار تأثير متغير أو أكثر من المتغيرات المشتركة، والتي قد تؤثر على المتغير التابع، و الهدف الرئيسي من ANCOVA هو تحسين دقة التحليل عن طريق التحكم في المتغيرات الخارجية التي قد تشوش النتائج، فمثلا، في دراسة تقارن بين تأثير طرق تعليمية مختلفة على أداء الطلاب، يمكن استخدام ANCOVA للتحكم في عامل مثل الذكاء أو المستوى التعليمي السابق، وهكذا يمكن عزل تأثير الطريقة التعليمية بشكل أكثر دقة، و يعتر ANCOVA أداة قوية في البحث العلمي لتحسين فهم العلاقات بين المتغيرات.
  16. بالنسبة ل RandomForestRegressor هو نموذج تعلم آلي ينتمي إلى خوارزميات الأشجار العشوائية ويستخدم لحل مشاكل الانحدار، يعتمد على إنشاء مجموعة من الأشجار أو Decision Trees تعمل معا لتقديم توقعات دقيقة، و يتم تدريب كل شجرة على جزء عشوائي من البيانات، ثم تجمع النتائج النهائية من جميع الأشجار عن طريق حساب المتوسط لتقليل الخطأ وزيادة الدقة. يعني يقوم النموذج بإنشاء عينات عشوائية من بيانات التدريب، بحيث يمكن أن تتكرر بعض البيانات ضمن العينة الواحدة، ثم يتم إنشاء عدد كبير من الأشجار باستخدام هذه العينات العشوائية، و في كل شجرة، يتم استخدام مجموعة عشوائية من الميزات عند تقسيم العقد. و أثناء التنبؤ، تقوم كل شجرة بإنتاج قيمة مستهدفة، و يتم حساب متوسط القيم الناتجة من جميع الأشجار للحصول على التنبؤ النهائي.
  17. الفرق يكمن في مستوى الراحة والمرونة والتكلفة، حيث إذا اخترت خدمة الاستضافة المدارة من WordPress.com، فستحصل على إعداد تلقائي دون الحاجة للتعامل مع الجوانب التقنية، مع ميزات مثل التحديثات التلقائية، النسخ الاحتياطية اليومية، والدعم الفني المباشر، ولكنك ستدفع تكلفة أعلى وستكون محدودا في التحكم الكامل بالموقع، أما إذا قمت بتنصيب WordPress يدويا باستخدام FTP، فستحصل على مرونة كاملة للتحكم بالموقع وإمكانية تخصيص غير محدودة مع تكلفة أقل، ولكن ذلك يتطلب خبرة تقنية لتحميل الملفات، إعداد قواعد البيانات، وإدارة التحديثات والصيانة بشكل يدوي.
  18. على الرغم من أن الجملتين قد تبدوان متشابهتين، إلا أنهما تنتجان نتائج مختلفة بسبب كيفية التعامل مع الأعمدة الإضافية بجانب الأعمدة المحسوبة، حيث في الإستعلام الأول يتم تحديد أول سنة لكل منتج باستخدام الاستعلام الداخلي، و يتم بعد ذلك مطابقة السجل بالكامل بناء على product_id, year مع النتيجة المحسوبة من الاستعلام الداخلي، و هذا يعني أنه يتم تحديد سجل واحد فقط لكل منتج يتوافق مع أصغر سنة و النتيجة تكون كل منتج سيظهر مرة واحدة مع بيانات quantity وprice التي تتوافق مع السنة الأولى. أما في الكود الثاني هنا يتم استخدام group by مع product_id، و يتم حساب أصغر سنة لكل منتج، ولكن الأعمدة الأخرى ليست ضمن الدالة التجميعية أو في عبارة group by، و في معظم قواعد البيانات، ستقوم قاعدة البيانات باختيار قيمة عشوائية أو غير محددة من الأعمدة الإضافية quantity وprice للسجلات المتعلقة بكل مجموعة.
  19. ستجد أسفل فيديو الدورة مكان لإضافة التعليق هناك، أرجوا كتابة المشكلة التي عندك في تلك الخانة، فهنا نطرح الأسئلة العامة فقط.
  20. هو أداة إحصائية تستخدم لتقييم الأفكار أو الادعاءات حول مجموعة بيانات معينة، و الهدف الأساسي من اختبار الفرضيات هو تحديد ما إذا كان هناك دليل كاف في عينة البيانات لدعم فرضية معينة أو رفضها بالنسبة لمجتمع البيانات الأكبر، و له علاقة وثيقة بالإعلام الآلي، خاصة في المجالات التي تعتمد على تحليل البيانات، الذكاء الاصطناعي، وتعلم الآلة، حيث نستخدمه في تحليل البيانات لتقييم الفروق بين المجموعات أو قياس تأثير التغييرات، مثل اختبار أداء خوارزمية جديدة مقارنة بالأداء السابق، وفي تعلم الآلة يساعد اختبار الفرضيات في مقارنة دقة النماذج وتحديد إذا ما كانت الفروقات بين أدائها حقيقية وليست ناتجة عن الصدفة.
  21. ال Regularization هو مفهوم في مجال تعلم الآلة يستخدم لتقليل مشكلة overfitting، أي عندما يكون النموذج مدربا بشكل زائد على بيانات التدريب بحيث يصبح أداؤه ضعيفا على البيانات الجديدة، حيث عندما تقوم ببناء نموذج معقد للغاية مثل نموذج ذو عدد كبير من المعاملات أو الشبكات العصبية العميقة، قد يتعلم النموذج التعرف على الضوضاء الموجودة في بيانات التدريب بدلا من الأنماط العامة، و يأتي هنا دور Regularization حيث يساعد في تقليل هذا التعقيد وضمان أن النموذج يركز على الأنماط المهمة فقط.
  22. لا يمكنك استخدام التوزيع الطبيعي على البيانات الفئوية، لأن التوزيع الطبيعي يستخدم لتمثيل البيانات الكمية التي تكون مستمرة، مثل الوزن، درجات الحرارة و غيرها، أما البيانات الفئوية فهي عبارة عن بيانات تصنف العناصر إلى فئات أو مجموعات و هذه البيانات لا تتبع توزيعات مثل التوزيع الطبيعي لأنها ليست مستمرة، فالقيم تكون عبارة عن تسميات أو فئات، وليس أرقاما قابلة للقياس بشكل متصل، و أيضا لا يوجد متوسط وانحراف معياري بالمعنى المستخدم في التوزيع الطبيعي، فالقيم الفئوية لا تُستخدم لحساب الخصائص الإحصائية المرتبطة بالتوزيع الطبيعي. هناك توزيعات أخرى قد تكون أكثر ملاءمة، حيث يمكنك الإعتماد على التوزيع متعدد الحدود أو التوزيع الثنائي.
  23. الانحدار الخطي يستخدم لتحليل العلاقة بين متغيرين أو أكثر، و يتمثل في إيجاد معادلة خطية تعبر عن العلاقة بين المتغير المستقل والمتغير التابع، أما مكتبة Matplotlib نستخدمها بشكل أساسي للتصور، حيث يمكنك رسم البيانات لفهم الأنماط والاتجاهات بطريقة بصرية ثم يمكنك تحليل العلاقة بصريا، و الفرق هنا هو أن الانحدار الخطي يعطيك تحليلا رياضيا دقيقا للعلاقة، بينما Matplotlib هي أداة تصوير بصري، تظهر الاتجاهات والأنماط في البيانات ولكنها لا تقدم تحليلا رياضيا أو تنبؤات.
  24. بالنسبة للكود الأول فأنت تمرر قيمة مزدوجة بين الأقواس، و يعتبر tuple لأنك فصلت بين العنصرين بفاصلة، و مكتبة pandas لا تدعم تحديد الأعمدة باستخدام tuple عند الوصول إلى أعمدة متعددة، وبالتالي ينتج عنه خطأ. أما في الكود الثاني، فأنت تمرر قائمة باستخدام الأقواس المربعة [ ]، و مكتبة pandas تدعم تحديد الأعمدة باستخدام قائمة تحتوي على أسماء الأعمدة، وهذا هو الشكل الصحيح للوصول إلى أعمدة متعددة في DataFrame. بالنسبة للكود الثالث فهنا يتم الوصول إلى عمود واحد فقط باستخدام سلسلة مباشرة، و هذا الشكل مدعوم من pandas، لذا الكود يعمل بشكل صحيح، لكن عند التعامل مع أعمدة متعددة، تحتاج إلى وضعها داخل قائمة [ ]، كما في الكود الثاني.
  25. إذا كنت تريد التنبؤ بمعدلات البقاء على قيد الحياة فقط استخدم العمود efs ، حيث أن هذا العمود يمثل ما إذا كان المريض قد نجا بدون أحداث و في هذه الحالة سيكون النموذج تصنيف، أما إذا كنت تريد التنبؤ بمدة البقاء على قيد الحياة بدون أحداث، استخدم العمود efs_time، حيث أن هذا العمود يمثل عدد الأيام أو الشهور التي عاشها المريض بدون أحداث سلبيةو في هذه الحالة تستخدم الانحدار. أما إذا كنت تريد الجمع بين الاثنين أي التنبؤ بكل من البقاء والمدة يمكنك في هذه الحالة بناء نموذج متعدد الأهداف للتنبؤ بـ efs و efs_time معا، حيث يعمل النموذج على المهمتين في وقت واحد، و هذه الطريقة أكثر تعقيدا ولكنها مفيدة إذا كنت تعتقد أن التنبؤ بقيمة واحدة يمكن أن يساعد في تحسين دقة التنبؤ بالقيمة الأخرى.
×
×
  • أضف...