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

ياسر مسكين

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

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

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

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

    2

كل منشورات العضو ياسر مسكين

  1. عند استخدام تحليل الانحدار الخطي (OLS) الأفضلية بين استخدام جميع الأعمدة دفعة واحدة أو تقسيمها إلى مجموعات تعتمد على عدد المتغيرات وأهداف التحليل فإذا كان عدد الأعمدة صغيرا مثلا أقل من 10 يفضل استخدام جميع الأعمدة مرة واحدة للحصول على نموذج شامل ودقيق أما إذا كان العدد كبيرا يمكن تقسيم الأعمدة إلى مجموعات لتجنب مشاكل مثل تعدد الخطية (Multicollinearity) أو استهلاك الموارد الزائد مع مراعاة اختبار العلاقات بين المتغيرات باستخدام VIF لضمان دقة النتائج وبشكل عام والبدء باستخدام جميع الأعمدة هو الخيار الأفضل وإذا ظهرت مشكلات يمكن استخدام تقنيات مثل اختيار الميزات أو تقليل الأبعاد لتحسين النموذج لذا من الأفضل تحليل ال 8 أعمدة مرة واحدة لأن هذا يعطينا فهم أفضل للعلاقات بين كل البيانات ولأنّ تقسيم البيانات قد يؤدي لنتائج غير دقيقة.
  2. برنامج Google Summer of Code (GSoC) هو مبادرة سنوية تقدمها Google لدعم تطوير البرمجيات مفتوحة المصدر أين يتمثل الهدف الرئيسي للبرنامج في تشجيع الطلاب والمطورين على المشاركة في مشاريع برمجية مفتوحة المصدر من خلال توفير فرصة للعمل مع منظمات داعمة لهذه المشاريع ويعمل البرنامج من خلال سلسلة من الخطوات المنظمة التي تهدف إلى دمج الطلاب والمطورين في مشاريع برمجية مفتوحة المصدر. تبدأ العملية عندما تقوم المنظمات الداعمة للمشاريع مفتوحة المصدر بالتقدم للمشاركة في البرنامج، حيث تقوم Google باختيار المنظمات المؤهلة التي ستشارك في النسخة السنوية بعد ذلك يتقدم الطلاب أو المطورون الراغبون في المشاركة بطلبات لتنفيذ مشاريع محددة تقترحها هذه المنظمات، مع تقديم مقترحات مشاريع مصحوبة بخطة عمل مفصلة. تقوم المنظمات بعد ذلك بمراجعة الطلبات واختيار الطلاب المناسبين للمشاريع المقترحة.
  3. لإدارة المنصة من خلال خادمك المنزلي يمكنك استخدام أحد حواسيبك ذات الإمكانيات العالية كسيرفر إداري، قم بتثبيت نظام Linux مثل Ubuntu لتوفير بيئة مستقرة وآمنة. ولتأمين الطاقة أثناء انقطاع الكهرباء يمكنك شراء جهاز UPS لضمان استمرار العمل مؤقتا ومولد كهربائي صغير أو نظام طاقة شمسية لحلول طويلة الأمد على حسب ميزانيتك بطبيعة الحال، ثم تثبيت الأدوات اللازمة مثل Nextcloud لإدارة الملفات وosTicket لإدارة استفسارات العملاء مع جدار ناري مثل UFW لحماية البيانات. ويمكنك استخدام اتصال إنترنت ثابت وسريع وتهيئة السيرفر للوصول المحلي أو عبر الإنترنت باستخدام SSH ولضمان استمرارية العمل وعدم فقدان أية بيانات خذ نسخا احتياطية دورية للبيانات باستخدام وحدات تخزين خارجية وخدمات سحابية مثل Google Drive.
  4. text-indent هي خاصية في CSS تستخدم لتحديد المسافة البادئة للسطر الأول من النص في عنصر معين بمعنى آخر أنها تسمح بتحريك السطر الأول من النص إلى الداخل أو الخارج بالنسبة لحافة العنصر والقيم الممكنة لها مثلا بالنسبة للطول الثابت نستعمل: px، em، rem، cm كالتالي: text-indent: 20px; وهذا سيحرك السطر الأول من النص إلى الداخل بمقدار 20 بكسل. وهنا مثلا: p { text-indent: 50px; } هنا سيتم تحريك السطر الأول من كل فقرة إلى الداخل بمقدار 50 بكسل لكن يجب الانتباه إلى أنّ text-indent تؤثر فقط على السطر الأول من النص وليس جميع الأسطر.
  5. حاليا لا توجد دورة شاملة لذا لكي تكون مبرمج Full-Stack يجب أن تدرس دورة تطوير الواجهات Frontend وتختار إحدى دورات تطوير الواجهات الخلفية Backend يمكنك تصفح الدورات الموجودة من هنا: إضافة إلى الدورات التي أضيفت حديثا: https://academy.hsoub.com/learn/artificial-intelligence/ https://academy.hsoub.com/learn/game-development/ يمكنك الاطلاع على الإجابات التي طرحت من قبل من هنا:
  6. بالنسبة لتعلم البرمجة بلغة بايثون يمكنك مراجعة الإجابة على هذا السؤال فستجد مجموعة من الكتب المفيدة: إضافة إلى ذلك هذه ثلة من الكتب الخاصة بتطوير الواجهات الأمامية (Front-End): كتاب تعلم JavaScript من الأساسيات إلى المفاهيم المتقدمة Eloquent JavaScript" by Marijn Haverbeke "HTML and CSS: Design and Build Websites" by Jon Duckett "CSS Secrets" by Lea Verou "JavaScript: The Good Parts" by Douglas Crockford يمكنك إيجاد كتب أخرى ضمن قسم الكتب الخاص بأكاديمية حسوب من هنا: https://academy.hsoub.com/files/
  7. وعليكم السلام ورحمة الله، النماذج التنبؤية لا تفشل بالمعنى المطلق بل تعاني من قصور في معالجة الفجوات المتعلقة بهذه الحالات وهذا بسبب تحيزات في البيانات أو تصميم النماذج وهذا القصور يؤدي إلى نتائج غير دقيقة أو غير عادلة لفئات معينة مما يجعلها تبدو وكأنها "تفشل" في التعامل مع هذه الفجوات فعندما تكون البيانات المستخدمة لتدريب النماذج غير متنوعة أو تأتي بشكل رئيسي من فئات معينة، فإن النموذج يصبح أكثر دقة لتلك الفئات فقط، بينما يفشل في التعامل مع الفئات الأخرى وقد تتجاهل النماذج العوامل الاجتماعية والاقتصادية المهمة، مثل الفقر أو التمييز التاريخي، مما يؤدي إلى توقعات غير دقيقة أو غير عادلة. ولتحسين هذه النماذج، يجب ضمان تمثيل جميع الفئات في البيانات ومراعاة العدالة في تصميم الخوارزميات واختبار النماذج على مجموعات متنوعة لضمان دقتها وعدالتها للجميع.
  8. أرجو إن كان سؤالك متعلقا بإحدى الدروس الخاصة بالدورات أن تقوم بوضعه أسفل الدرس في صندوق التعليقات المخصص لذلك، فهذا القسم مخصص للأسئلة العامة وهذا لمساعدتك بشكل أفضل. وفضلا وليس أمرا، حين طرح سؤالك التوضيح أكثر بشأن الخطأ الذي يواجهك، لأن صياغة السؤال مهم جدا لإيصال استفسارك وهذا لمرافقتك بالشكل المناسب.
  9. وعليكم السلام ورحمة الله، هذا أكيد علي، فالبرمجة بلا شك هي أداة أساسية لبناء الحلول المبتكرة في عصرنا الحالي فهي تتيح لنا تطوير الخوارزميات ومنه بناء نماذج تعلم آلة متطورة، نستطيع من خلالها معالجة البيانات ومنه تحليل كميات كبيرة من البيانات ونحقق من خلالها التكامل من خلال دمج تقنيات وأدوات الذكاء الاصطناعي في مختلف التطبيقات التي نبرمجها. كما أنّ عامل التخصيص يساعدنا لتكييف الحلول حسب احتياجات محددة وهذا لا يمكن أن يتمّ دون برمجة، علاوة على ذلك تساعدنا في تحسين النماذج وهذا ما يؤدي لتطوير أداء وكفاءة الأنظمة الذكية، أي أنّ العلاقة بينهما ضرورية لتحقيق الابتكار واستمرارية التطوير في كلا المجالين، البرمجة والذكاء الاصطناعي. يمكنك البحث عن أيّ مقالة تريد في قسم المقالات "الذكاء الاصطناعي" وستجد معلومات مفيدة أكثر: https://academy.hsoub.com/programming/artificial-intelligence/
  10. أنت تستخدم await وهذا يعني أن الكود يجب أن يكون داخل دالة async لذا أرجو التأكد من أن الدالة التي تحتوي على هذا السطر معرفة ك async def وهل قمت بإنشاء كائن highrise بشكل صحيح أرجو التأكد أيضا من تهيئة الكائن قبل استخدامه وفي حال استمرار المشكلة أرجو إرفاق رسالة الخطأ وصورة توضح المشكلة واستخدامها يمكن أن يكون بهذا الشكل: async def some_function(self): try: roomUsers = (await self.highrise.get_room_users()).content return roomUsers except Exception as e: print(f"Error: {e}") في حال كانت المشكلة متعلقة بإحدى الدروس الخاصة بإحدى الدورات أرجو طرح سؤالك أسفل الدرس المعني بذلك في صندوق التعليقات المخصص لذلك فهنا نطرح فقط الأسئلة العامة وهذا لمساعدتك بالشكل المناسب.
  11. في الحقيقة فاختيار نظام التشغيل يعتمد أساسا على احتياجاتك الحالية والمستقبلية ولتطوير تطبيقات Android يمكنك استخدام أي من Windows أو macOS دون قيود حيث توفر Flutter مثلا الأدوات اللازمة لكلا النظامين أما لتطوير تطبيقات iOS أو رفعها إلى App Store فستحتاج إلى جهاز macOS لأن أدوات مثل Xcode ضرورية لهذه العملية وهي متوفرة فقط على macOS أما إذا كنت تركز في البداية على Android فقط يمكنك استخدام Windows لتوفير التكلفة ثم يمكنك لاحقا وعند الحاجة لدعم iOS يمكنك الانتقال إلى macOS أو الاستعانة بخدمات سحابية مثل MacStadium وأما إذا كان دعم iOS جزءا أساسيا من خطتك منذ البداية فإن macOS سيكون الخيار الأفضل لتجنب أي تعقيدات مستقبلية أي أنك إذا كنت تستهدف Android فقط الآن فإن Windows كاف ولن تواجه أي قيود أما إذا كنت تخطط لدعم iOS أو رفع التطبيقات إلى App Store، فستحتاج إلى macOS لأن تطوير وإدارة تطبيقات iOS يعتمد بشكل أساسي على أدوات متوفرة حصريا على macOS.
  12. ما يحدث هنا أن PyCharm يعمل بشكل افتراضي باستخدام البيئة الافتراضية المحددة في إعدادات المشروع، حتى لو لم تقم بتنشيط البيئة يدويا من الطرفية لكن إذا قمت بتشغيل الكود مباشرة من الطرفية باستخدام الأمر: python test.py فسيحاول بايثون استخدام المفسر الافتراضي للنظام وليس البيئة الافتراضية مما يؤدي إلى ظهور خطأ ModuleNotFoundError إذا كانت المكتبة غير مثبتة في المفسر الافتراضي ويحدث هذا لأنه في: في PyCharm: البيئة الافتراضية مهيأة في إعدادات المشروع لذلك يتم تشغيل الكود باستخدام المفسر المحدد (البيئة الافتراضية)، حتى إذا لم تقم بتفعيلها يدويا. في Terminal: عند تشغيل الكود باستخدام الأمر python يتم استخدام المفسر الافتراضي للنظام إذا لم تكن البيئة الافتراضية مفعّلة. لذا يجب التأكد من تفعيل البيئة الافتراضية عند العمل من الطرفية: .venv\Scripts\activate ثم تشغيل الملف.
  13. التدوين شيئ جميل، لكن ما ندوّنه هو الأهم فإن كنّا نقوم بتدوين كلّ شيء تقريبا فهذا الأمر ليس بالأمر الجيد ولا أنصح به، لأنه سيجعل عملية التعلم طويلة ويجعل المتعلم يتواكل أكثر على ما يكتبه وقد لا يفهمه أساسا، لذا أعتقد أنّ عملية التدوين يجب أن تكون منظمة فلا ندوّن أمورا يمكن أن نجدها في مصادر خارجية أو في التوثيقات الرسمية، مثل الأكواد مثلا أو أسماء الدوال وتعريفاتها وغيرها. يمكنك التركيز أكثر على الأفكار التي يقوم المدرب بتطبيقها في كلّ درس، فكلّ درس يأخذ فكرة جديدة ويطبقّها، ونحن هنا يجب أن ننتبه بأننا لا نقوم بالحفظ ونركز أكثر على الفهم وأخذ الأفكار وتطبيقها ومعاودة تطبيقها بأنفسنا لترسيخ الأفكار التي نكتسبها كما يمكنك مراجعة بضعة نصائح حول أحسن الطرق لمراجعة الدورات ودراستها من هنا:
  14. ذلك يعتمد بشكل كبير على كمية البيانات المتبقية ونمط القيم المفقودة فإذا كانت القيم المفقودة عشوائية وتمثل نسبة صغيرة من الأعمدة أو الصفوف المتبقية، فإن التأثير قد يكون محدودا خاصة إذا تم استخدام تقنيات معالجة مثل إحلال القيم المفقودة (Imputation) باستخدام المتوسط، الوسيط، أو الفئة الأكثر شيوعا. وأما إذا كانت القيم المفقودة تتركز في أعمدة أو صفوف رئيسية ذات تأثير كبير على النموذج فإن ذلك سيؤدي إلى فقدان التمثيل السليم للبيانات مما يقلل من دقة النموذج ويزيد من التحيز فإذا كانت نسبة البيانات المفقودة مرتفعة للغاية، فإن كمية البيانات المستخدمة لتدريب النموذج قد تصبح غير كافية، مما يؤدي إلى ضعف التعميم عند التنبؤ بالبيانات الجديدة. للتخفيف من هذا التأثير، يمكنك حذف الأعمدة أو الصفوف ذات القيم المفقودة بشكل مفرط، أو استخدام تقنيات مثل النماذج التي تتحمل القيم المفقودة (مثل أشجار القرار)، مع التأكد من أن البيانات المتبقية تعكس التوزيع الأصلي لتجنب انحراف النتائج.
  15. في هذه الحالة القيم NaN ظاهرة في الجدول لأن عملية groupby تقوم بإنشاء جدول تقاطعي ما يعرف ب cross-tabulation يحتوي على جميع التركيبات الممكنة بين year_hct و prim_disease_hct وعندما لا يوجد أي حالات لمرض معين في سنة معينة سيتم عرضها ك NaN أي Not a Number لذا إذا كنت تريد إزالة قيم NaN من الجدول يمكنك استخدام fillna(0) لاستبدال NaN بالقيمة 0 كالتالي: disease_year_distribution = data_train.groupby(['year_hct' , 'prim_disease_hct']).size().unstack().fillna(0) print(disease_year_distribution) هذا سيعرض نفس الجدول ولكن مع استبدال جميع قيم NaN بالصفر مما يعني أنه لم تكن هناك حالات لهذا المرض في تلك السنة المحددة.
  16. أرجو طرح سؤالك أسفل الدرس في صندوق التعليقات وليس هنا في قسم الأسئلة العامة وهذا لمساعدتك بالشكل الأفضل,
  17. في حال كان سؤالك متعلقا بإحدى الدورات أو أحد الدروس أرجو وضع سؤالك في أسفل الدرس أين ستجد صندوقا للتعليقات يمكنك وضع سؤالك هناك حيث هذا القسم مخصص فقط لقسم الأسئلة العامة.
  18. نحن هنا في الأكاديمية حريصون على عدم الإجابة على أسئلة الاختبارات والامتحانات، لاتباعها نهجا تعليميا لذا من الأحسن توضيح أيّ جزئية لم تفهميها في البرمجة بلغة C++ لنشرحها لك ثم يمكنك المحاولة بنفسك لحلّ الاختبار وفي حال أخطأت يمكننا توجيهك. إضافة لذلك يمكنني اقتراح عدة مصادر للتعلم من أجلك من هنا: https://academy.hsoub.com/programming/cpp/
  19. أيّ شيء متعلق بشروط دراسة الدورات وكيفية إتمام المسارات والتقدم للامتحان تجدها من هنا: شروط التقدم للامتحان أما الحصول على الشهادة وكيفية ذلك أرجو منك مراجعة الأجوبة السابقة من خلال هذا الرابط: وفي حال كنت تسأل عن الدورة المناسبة لك فأرجو تقديم تفصيلات أكثر لنساعدك في التوجيه أو يمكنك مراجعة الأجوبة السابقة من هنا:
  20. كما تمت الإشارة في التعليقات السابقة. يمكنك مراجعة المزيد من المفاهيم المتعلقة بتجاوبية الصفحات على الويب كي تحقق ما ترغب فيه أقترح عليك بعض المقالات المفيدة في هذا السياق من هنا: https://alistapart.com/article/responsive-web-design/
  21. لديك عدة احتمالات إما استخدام بوت صانع الملصقات المعروف يمكنك البحث عنه وهو بوت صانع الملصقات في تيليجرام يمكنك استخدام بوت مثل @Stickers في خانة البحث ثم ابدأ محادثة مع البوت واضغط على "ابدأ" واتبع التعليمات لإنشاء مجموعة ملصقات جديدة ولكنك ستحتاج إلى رفع الصور التي ترغب في تحويلها إلى ملصقات مباشرة عبر التطبيق. وبعد بدء المحادثة مع البوت، يمكنك استخدام الأمر /newpack لإنشاء حزمة ملصقات جديدة ثم قم بتحميل الصور التي تريدها كملصقات ويجب أن تكون الصور بصيغة PNG مع خلفية شفافة وبعد رفعك للصور، يمكنك إضافة أسماء لكل ملصق ثم إرسال الأمر /publish لنشر الحزمة. يمكنك استخدام نفس البوت لصنع إيموجي مخصص من خلال استخدام الأمر /newemoji واتباع التعليمات ويمكنك بطبيعة الحال رفع الصور وتحويلها إلى إيموجي، ثم استخدام الأوامر المناسبة لنشرها وبعد إنشاء الحزمة الخاصة بك، يمكنك مشاركة رابط الحزمة في قناتك واستخدام الرابط الذي يوفره لك البوت.
  22. السلام عليكم ورحمة الله. التأخر في الرد في ساعات الصباح الباكر قد يكون بسبب توفر عدد قليل من المدربين في تلك الفترة، وهذا راجع لاختلاف المواقيت بين المدربين والطلبة وبين بلدانهم المختلفة وأماكن تواجدهم وهذا بسبب الفوارق الزمنية المعروفة، وهذا لا يعني أنه لا يتم الرد في تلك الفترة، بالعكس، يمكنك ترك تعليقك وسيتم الموافقة عليه في أقرب وقت ممكن، والإجابة قد تتم بسرعة أو تأخذ بعض الوقت على حسب طبيعة السؤال المطروح وهذا كي نجيب الطلبة بأفضل إجابة ممكنة تساعده على فهم الدروس وإتمامها بالشكل المناسب. لذا لا داعي للقلق، يمكنك ترك تعليقك في المكان المخصص له أسفل الدرس في صندوق التعليقات وسيتم الإجابة عنه في أقرب وقت يتوفر فيه المدربون صباحا.
  23. المشكلة في الكود هي أنك تستخدم present++ (Post-Increment) داخل الدوال وهذا يؤدي إلى إرجاع القيمة الحالية ل present قبل عمل أي زيادة، مما يجعل النتائج غير صحيحة لذا استبدل present++ ب ++present (Pre-Increment) حتى تتم الزيادة أولا ثم تعاد القيمة بحيث counter.increment() يعيد القيمة الصحيحة بعد التعديل: var createCounter = function(init) { let present = init; return { increment:()=> ++present, decrement:()=> --present, reset:()=> present = init, } }; present++: يعيد القيمة قبل التعديل. ++present: يعدل القيمة ثم يعيدها.
  24. XGBoost أو (Extreme Gradient Boosting) هو مكتبة مفتوحة المصدر تستخدم لتطبيق أسلوب تعزيز التدرج (Gradient Boosting) ويستخدم بشكل رئيسي في تحليل البيانات الهيكلية والمنافسات في تعلم الآلة أما طريقة عمله فهي كالآتي بالنسبة لمفهوم التعزيز أي أنه يجمع بين عدة متعلمين ضعفاء (عادة أشجار قرار) لتكوين نموذج قوي وأيضا: Gradient Descent يستخدم للتقليل من الخسائر أي التقليل من دالة الخسارة. و Regularization ويتضمن تنظيم L1 وL2 لتجنب الإفراط في التكيف. التعامل مع القيم المفقودة: يمكنه التعامل مع القيم المفقودة بشكل طبيعي. Parallelization أو التوازي بحيث يستفيد من تعدد الأنوية في وحدة المعالجة المركزية لزيادة سرعة التدريب. بالنسبة للتثبيت: pip install xgboost استيراد المكتبات: import xgboost as xgb import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score تحميل البيانات: data = pd.read_csv('your_dataset.csv') X = data.drop('target', axis=1) y = data['target'] تقسيم البيانات: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) إنشاء DMatrix: dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) تحديد المعلمات: params = { 'objective': 'binary:logistic', 'max_depth': 3, 'eta': 0.1, 'eval_metric': 'logloss' } تدريب النموذج: bst = xgb.train(params, dtrain, num_boost_round=100) إجراء التنبؤات: preds = bst.predict(dtest) predictions = [1 if pred > 0.5 else 0 for pred in preds] تقييم النموذج: accuracy = accuracy_score(y_test, predictions) print(f'Accuracy: {accuracy:.2f}')
  25. حماكم الرحمان بحفظه وكرمه، وأعانكم الله. في البرمجة دوما ننصح بالاستمرارية، وفي حالة كان هنالك انقطاع فلا يكون أكثر من أسبوعين وكل ما طالت المدة كلما صعُب على المرء استدراك ما فاته، فالنسيان هو صفة ملازمة لجميع الناس، وفي الحالات الطارئة والقصوى ففترة شهرين هي ليست بالطويلة على الإطلاق، في حال كنت تدرسين بجدّ وفهمت ما كنت تعملينه مع المدربة فلن تواجهي مشكلة كبيرة في الاسترجاع. لذا في الحالات العادية أنصح بعدم تجاوز فترة أسبوعين دون ممارسة للبرمجة كي يكون هناك تقدم جيد في المسار التعلمي، ويمكنك أخذ فترات راحة بين الفينة والأخرى كي تسترجعي قواك ولا تتشتي كثيرا. أما بالنسبة للظروف التي هي خارجة عن نطاقنا، فمحتوى الدورة متاح للطالب مدى الحياة بما فيها التحديثات، لذا لا داعي للقلق وثلّة من المدربين سيكونون دائما معك لمرافقتك.
×
×
  • أضف...