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

محمد_عاطف

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

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

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

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

    134

كل منشورات العضو محمد_عاطف

  1. أولا بالنسبة إلى التطبيقات مثل Excel و أدوات تحليل البيانات المخصصة الأأخرى فهي توفر لك واجهات رسومية تسهل عليك استخدام تلك التطبيقات مما تكون جيدة للأشخاص الذين ليس لديهم خلفية برمجية أو غير متخصصين . وتتيح لك تلك الأدوات إدخال البيانات وتنظيمها بسهولة بالإضافة إلى الخصائص والأدوات الخاصة و الأساسية بالتحيليل مثل Pivot Tables أو الرسوم البيانية وغيرها. ولكنها تفتقر إلى التخصيص حيث لن تتمكن من تخصيص ما تريده إذا لم توجد الخصائص التي تريدها و التي توفرها لك تلك الأدوات وأيضا لن تستطيع التعامل مع البيانات الكبيرة. أما Jupyter فهو بيئة تفاعلية قائمة على النصوص وهو مثل محررات الأكواد IDE ويتيح لك كتابة أكواد برمجية باستخدام لغة Python لتنفيذ عمليات تحليل البيانات. ويعطيك القدرة على تنفيذ الاكواد وعرض نتائجها في نفس الوقت في الخلية الحالية التيل تعمل عليها مما يوفر عليك الوقت وتسهيل الأمور عليك . ويمكنك من خلاله كتابة أكواد مخصصة للتحليل الذي تريده دونا التقيد بأكواد أو خصائص معينة كما كان يحدث في التطبيقات الجاهزة . لذلك إذا كنت بحاجة إلى تحليلات معقدة أو مخصصة أو إذا كنت تعمل مع بيانات كبيرة أو كنت تحتاج إلى تطبيق خوارزميات تعلم آلي فالأفضل لك هو التعامل مع Jupyter. ولكن إذا لم تكن لديك خلفية برمجية قوية و كنت تحتاج إلى خصائص بسيطة وليست مخصصة أو لم ترد التعامل مع البيانات الكبيرة فيمكنك إستخدام التطبيقات الجاهزة.
  2. وعليكم السلام ورحمة الله وبركاته. يجب عليك التأكد من أن الـ loss الذي يتم استخدامه لحساب الـ RMSE هو بالفعل Mean Squared Error (MSE) وليس نوعا آخر من الدوال الخسارة (Loss Functions). حيث إذا كان الـ loss ليس MSE فإن حساب الـ RMSE بهذه الطريقة لن يكون صحيحا. لذلك إذا كانت الدالة هيMSE فإن النسبة المئوية للخطأ التي تم الحصول عليها هي 51.93%. هذا يعني أن الخطأ في النموذج يمثل حوالي 51.93% من متوسط القيم الفعلية وهذه القيمة ليست جيدة هذه المشكلة بسبب أبعاد البيانات حيث : y_target_test يحتوي على 4320 عنصر target يحتوي على 3 عناصر فقط لذلك يرجى أولا التأكد من الأبعاد الصحيحة : print(y_target_test.shape) print(target.shape) وإذا كانت الأبعاد مختلفة يجب عليك التأكد من جعل الأبعاد متشابهة
  3. وعليكم السلام ورحمة الله وبركاته. نعم بالطبع . بشكل عام كلما كانت قيمة الـ loss أقل كان النموذج أفضل في أدائه ولكن بشرط أن يكون قد تم تدريبه بشكل جيد ولم يقع في مشكلة underfitting أو overfitting. و ال loss يمثل الخطأ الذي يرتكبه النموذج في التنبؤ،وبالتالي فإن انخفاض قيمته يشير إلى أن النموذج يتنبأ بشكل أكثر دقة وأخطاء أقل. ولكن يجب أن تنظر إلى معايير أخرى مثل accuracy أو MSE (Mean Squared Error) لفهم أداء النموذج بشكل كامل حيث في النتيجة مرفقة نجد أن ال MSE هو نفسه ال loss مما يشير إلى أن النموذج يستخدم ال MSE كدالة خسارة. وإن ال MSE يقوم بقياس الفرق بين القيم الحقيقية والقيم المتوقعة. وكلما كان أصغر كان النموذج أكثر دقة. و لكن لا يمكن مقارنة هذه القيمة مباشرة دون معرفة نطاق البيانات. فإذا كانت القيم المستهدفة y_target_test كبيرة فإن ال MSE بقيمة 15 مقبول ولكن إذا كانت صغيرة فقد يكون مرتفع . لهذا يجب أن تقارن هذا بالنسبة لحجم البيانات لديك.
  4. إذا كانت القيم مستمرة فالخيار الأفضل هو ال linear حيث أن الدالة الخطية مناسبة للتنبؤ بقيم مستمرة في نطاق غير محدود مثل 0.0 حتى 47.0. حيث إنها لا تقيد الناتج إلى نطاق معين (مثل 0 إلى 1 في حالة الـ sigmoid). أما إذا كانت القيم فئوية مثل تصنيفات أو أرقام محددة فيمكنك استخدام softmax (إذا كانت الفئات متبادلة أي إذا كانت الميزة لها فئة واحدة) أو sigmoid (إذا كانت الفئات غير متبادلة أي إذا كانت الميزة لها عدة فئات). ولك بالنسبة لمثالك هنا فإن القيم مستمرة ولهذا لا ينصح باستخدام sigmoid لأنها ستقيد الناتج بين 0 و1 حيث ال sigmoid تقوم بحصر القيم بين 0 و 1 مما يجعله غير مناسب عندما تحتاج إلى التنبؤ بقيم خارج هذا النطاق. ولكن إذا أردت إستخدام sigmoid فيمكنك تحويل القيمة في أخر طبقة للخرج هكذا : output = 47 × sigmoid وهنا سيكون النطاق بين 0 و 47 . فإذا كان ال sigmoid ب 0 سيكون النطاق 0 وإذا كان ال sigmoid ب 1 سيكون النطاق ب 47.
  5. الأمر طبيعي لا داعي للقلق كل ما يتوجب عليك الآن هو التطبيق على ما تم تعلمه وعدم الإستسلام للشعور بعدم التطبيق الكامل . حيث مع كثرة المشاريع والتطبيقات التي ستقوم بإنشاءها وأيضا التدريب عليها ستضح لك جميع الأمور التي قمت بتعلمها . أهم شئ حاليا هو التأكد من فهمك للأساسيات بشكل كبير لذلك إذا لم يكن فهمك لدروس html و css بنسبة 100% فيرجى مراجعة الدروس سريعا مع التطبيق على كل درس بشكل منفصل والتاكد من فهم كل شئ بخصوص هذا الدرس وكيفية التطبيق عليها في مشاريع حقيقية كما تم في الدروس . بعد ذلك يمكنك قراءة الأجابة التالية وهي ما سيتوجب عليك فعله بعد الإنتهاء من css و html وأيضا المواقع التي ستساعدك في التدريب على مشاريع حقيقية:
  6. وعليكم السلام ورحمة الله وبركاته. يجب عليك أولا تحديد المجال الذي تريد العمل فيه . فتلعم علوم الحاسوب فقط لن تفيدك بأى شئ سوى فقد تهيئك للدخول في المجال إذا لم تكن لديك أى خبرة مسبقة في الحاسوب أو إذا لم تكن تعلم أى مجال تريد العمل فيه وإليك الإجابة التالية لمزيد من التفاصيل حول دورة علوم الحاسوب هنا في الأكاديمية : أما إذا كنت تنوي تعلم مجال البرمجة عموما فيمكنك قراءة تلك الإجابة أيضا : وإذا كنت مهتما بتعلم تطبيقات الويب وتصميم وتنفيذ تلك المواقع فيمكنك قراءة تلك الإجابة وستفيدك فيما تبحث عنه : وهذه الإجابة بالتفصيل ستعطيك نبذه كاملة عن محتوى دورات الأكاديمية وما الذي سوف تتعلمه منها والوظيفة التي تستطيع الحصول عليها بعد تعلم تلك الدورة :
  7. وعليكم السلام ورحمة الله وبركاته. أولا يجب عليك أن تقوم بتدريب النموذج على بيانات التدريب (x_train, y_target_train) وفي أثناء التدريب يتم تحديث أوزان النموذج بناء على الخطأ (Loss) الذي يتم حسابه من بيانات التدريب. بعد ذلك في كل فترة تدريب (Epoch) أو بعد عدد محدد من الخطوات (Steps) يجب أن تقوم بتقييم النموذج على بيانات التطوير (x_dev, y_target_dev) و الهدف من هذا التقييم هو قياس أداء النموذج على بيانات لم يراها من قبل وهي بيانات التطوير التي قمت بتقسيمها للتأكد من أنه لا توجد مشكلة إفراط التخصيص (Overfitting) لبيانات التدريب. ويمكنك استخدام مقاييس مثل الدقة Accuracy الخطأ (Loss)، أو أي مقياس آخر تراه مناسبا لك. model.fit(x_train, y_target_train, validation_data=(x_dev, y_target_dev), epochs=50, batch_size=32) loss, accuracy = model.evaluate(x_test, y_target_test) print(f"Test Accuracy: {accuracy:.4f}") هنا في السطر الأول السابق إستخدمنا validation_data=(x_dev, y_target_dev) لتقييم النموذج على بيانات التطوير بعد كل فترة تدريب (Epoch). وفي السطر الثاني إستخدمنا هذا الكود لتقييم النموذج النهائي على بيانات الاختبار. ويجب عليك أن تعرف أن بيانات التطوير ليست للتقييم النهائي بل فقط نستخدمها لضبط النموذج. و عندما يكون النموذج جاهزا نستخدم بيانات الاختبار test لتقييم أداء النموذج.
  8. الصورة يتم وضعها بشكل صحيح لا مشكلة . المشكلة لديك في حجم الصورة . لاحظ كيف أن حجم الصورة لديك كبير لهذا تظهر كبيرة وبخارج ال nav. لاحظ أن طول عنصر ال a بداخل الnav هو 50px . ولكن الصورة أنت حددت لها عرض 150px وبالتالي ستأخذ طول 150px وبهذا فهي أكبر من طول عناصر ال nav ب 100px لهذا تظهر خارج ال nav. الحل هو تغير طول عناصر ال a مع تقليل ال padding في عنصر ال nav وتغير عرض وطول الصورة إلى 100px. لذلك في ملف style.css سطر 51 يجب إستبداله بالتالي : padding: 0 30px; وسطر 65 بالتالي : height: 100px; /* يمكنك تغيير الحجم حسب الحاجة */ والآن في ملف 1.html سطر 24 يرجى إستبداله بالتالي : <a href="#home" class="img2"><img src="image/logo-company.png" alt="" width="100px"></a> وإذا أردت زيادة حجم الصورة يجب زيادة الطول أيضا في سطر 65 في ملف css . ويفضل إستخدام صورة ذات أبعاد صغير وليس كبيرة حيث الصورة المستخدمة ذات أبعاد 500*500 وهي ليست جيده لوضعها في ال nav . وهذه هي النتيجة بعد التعدلات السابقة : 1.html style.css
  9. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. إذا لم يكن هذا سؤال خاص بالدورات يرجى توضيح ذلك مع إرفاق ملفات المشروع.
  10. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  11. وعليكم السلام ورحمة الله وبركاته. نعم، يمكنك ذلك . إذا كان العمود مثل ID يحتوي على قيم فريدة ولا يوفر أي معلومات مفيدة للنموذج مثل أرقام تعريفية كما في ال ID ، فمن الأفضل إزالته من البيانات قبل تدريب النموذج. وذلك لأن هذه القيم قد تؤدي إلى overfitting حيث من الممكن أن النموذج سيحاول تعلم النمط الخاص بال ID وه لا معنى له . بدلا من التركيز على السمات المهمة. لذلك يفضل إزالة العمود إذا كان : يحتوي على قيم فريدة لكل عينة مثل الأرقام التعريفية كما في ال ID . لا يساهم في التنبؤ أو التحليل مثل إذا كان أسماء أو أرقام عشوائية.
  12. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  13. بخصوص مشكلة حفظ الصور في مجلد categories . إذا كان مقصدك هو حفظ المجلدات بداخل مجلد categories لتصبح المسارات هكذا : C:\laragon\www\inspro\storage\app\public\categories\6 والصور المعدلة في المسار التالي C:\laragon\www\inspro\storage\app\public\categories\6\conversions فيرجى إضافة الكود التالي بداخل ملف config\filesystems.php في disks : 'media' => [ 'driver' => 'local', 'root' => storage_path('app/public/categories'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, ], وفي ملف app\Models\Category.php يرجى إستبدال الدالة registerMediaCollections بالتالي : public function registerMediaCollections(): void { $this->addMediaCollection('categories') // تحديد اسم المجموعة 'categories' ->singleFile() // لضمان حفظ صورة واحدة فقط ->useDisk('media'); // حفظ الملفات داخل مجلد 'categories' } وسيتم حفظ الصور كما في المسارات السابقة. ولقد قمت بإرفاق الملفين بعد التعديل. أما إذا أردتي تغير المسارات الأساسية للملفات المعدلة والأساسية مثل تغير رقم ال id فيرجى قراءة التوثيق الرسمي مع مشاهدة الفيديو الموجود به وإنشاء مثل ما تم في الشرح : https://spatie.be/docs/laravel-medialibrary/v10/advanced-usage/using-a-custom-directory-structure Category.php filesystems.php
  14. من الأفضل إرفاق ملف المشروع لمساعدتك بشكل أفضل. يبدوا أنه يوجد لديكي إصدار من المكتبة لا توجد به prefix mehtod .
  15. يرجى إستخدام الكود التالي في ال model : public function registerMediaCollections(): void { $this->addMediaCollection('categories') // تحديد اسم المجموعة 'categories' ->singleFile() // لضمان حفظ صورة واحدة فقط ->useDisk('public') ->prefix('categories'); // حفظ الملفات داخل مجلد 'categories' } يجب أن يتم حفظ الملفات بداخل مجلد categories .
  16. هل يمكنكي توضيح أين المسار الذي يتم إنشاء الملفات به ؟ يبدوا أنني قد فهمت المشكلة بشكل خاطئ . هل يتم حفظهم في المجلد public الخارجي الموجود في جذر المشروع أم ماذا ؟
  17. يجب عليكي تحديد مكان المجلد الذي تريدن حفظ الصور فيه . أولا يجب عليكي البحث في ملف config\filesystems.php بداخل المصفوفة disks والبحث عن المكان المناسب لكي أو حتي إنشاء مكان جديد : 'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), 'throw' => false, ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, ], فمثلا في الكود السابق يوجد disk يسمى local وستجدين أن المسار الموجود في الخاصية root هو مجلد app الذي بداخل storage. وال disk الذي يسمى public يتم تخزين الملفات بداخل المجلد app/public الموجود بداخل stroage . لهذا يجب عليكى البحث عن نفس ال root الذي هو storage_path('app/public') . وإذا لم يوجد يمكنكي إنشاء كائن جديد بداخل disks . بعد ذلك في ملف الموديل في الدالة registerMediaCollections يجب وضع useDisk مع إسم ال disk المناسب في config\filesystems.php لتصبح الدالة كالتالي : public function registerMediaCollections(): void { $this->addMediaCollection('categories') // تحديد اسم المجموعة 'categories' ->singleFile() ->useDisk('public'); // لضمان حفظ صورة واحدة فقط }
  18. وعليكم السلام ورحمة الله وبركاته. إذا قمت باستبدال OrdinalEncoder بـ One-Hot Encoding في الكود المرفق فستواجه مشكلة مع القيم المفقودة حيث الكود الحالي سقوم بتحديد الأعمدة الفئوية (categorical) في البيانات. ومن ثم يقوم بملئ القيم المفقودة في تلك الأعمدة بالقيمة 'missing' لكي لا تحدث مشكلة أثناء إستخدام OrdinalEncoder . بعد ذلك يقوم بإستعادة القيم المفقودة الأصلية مرة أخرى بعد إتمام ال OrdinalEncoder. أما عند إستخدام One-Hot Encoding فإنه يقوم بتحول كل فئة إلى عمود منفصل يحتوي على 1 أو 0 بحسب وجود الفئة. وإليك الفرق بين One-Hot Encoding و OrdinalEncoder : OrdinalEncoder: يقوم بتحويل القيم الفئوية إلى أرقام صحيحة فمثلا لو لدينا ["cat", "dog", "bird"] # سيتم تحويلها إلى [0,1,2] وهنا يمكنك بسهوله إمكانية إستبدال القيم المفقودة وإسترجاعها One-Hot Encoding: يحول القيم الفئوية إلى أعمدة منفصلة لكل فئة. فمثلا إذا كانت لدنيا فئة animal مثل المثال السابق : ["cat", "dog", "bird"] فسيتم تحويلها إلى ثلاثة أعمدة animal_cat و animal_dog و animal_bird حيث ستكون قيمة العمود ب1 إذا كانت الفئة موجودة و ب 0 إذا لم تكن موجودة. ولذلك فإنه إذا كانت هناك قيم مفقودة (NaN) في البيانات الأصلية فإن One-Hot Encoding سيحولها إلى عمود جديد مما قد يؤدي إلى زيادة كببيرة في عدد الأعمدة. ولذلك يوجد لديك بعض الحلول وهو إما إهمال البيانات المفقودة وعدم تضمينها أو يمكنك إضافة عمود خاص بالقيم المفقودة حيث يحتوي على 1 إذا كانت القيمة مفقودة و0 إذا لم تكن كذللك.
  19. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  20. وعليكم السلام ورحمة الله وبركاته. ليس تماما حيث لا يجب أن تكون جميع البيانات من نوع float عند استخدام PyTorch لبناء النماذج. ولكن بالغعل بعض النماذج تتوقع أن تكون بيانات الإدخال من نوع float وذلك لأنه بسبب العمليات الحسابية التي تجريها الطبقات المختلفة في النموذج تعمل بشكل أفضل مع الأعداد الحقيقية مما تعطيك دقة أفضل في الأداء. ولكن يمكنك إستخدم int في الأعمدة التي لا تتطلب حسابات رياضية مثل التسميات (labels) في مهام التصنيف.
  21. لا بئس يرجى الإنتظار قليلا لحين الرد عليك . وسيتم الرد عليك قريبا إن شاء الله.
  22. وعليكم السلام ورحمة الله وبركاته. نعتذر لك عن أية مشكلة قد حدثت لك .إذا أردت أى مساعدة بخصوص دروس الدورات أو أردت شرح جزء معين غير واضح فيمكنك دائما وضع سؤالك وسيتم مساعدتك من قبل المدربين المتاحين في الأكاديمية. وإذا واجهتك أى مشكلة أخرى سببت لك إزعاج مما جعلك تريد إسترجاع الدورة يمكنك إخباري وسأعمل على مساعدتك وحلها لك . أما بخصوص مركز المساعدة فحاليا يوجد ضغط على مركز المساعدة وهذا الذي سبب التأخير في الرد عليك . لهذا نعتذر على ذلك ويرجى الإنتظار قليلا لحين الرد عليك.
  23. هل تقد ما سيتم شرحه في الدورة ؟ يمكنك بالطبع معرفة كل هذا من خلال الدخول على صفحة الدورة نفسها لترى ما الذي سوف تتعمله : وعند الدخول على رابط الدورة نفسه استجد رابط يسمى شاهد صفحة الدورة وهنا ستشاهد تفصيل كامل لما يوجد في الدورة هكذا : https://academy.hsoub.com/learn/computer-science/
  24. للأسف لا يوجد حاليا أى كوبونات للدعم ولكن يوجد عرض بداية العام وهو شراء دورتين بسعر دورة واحدة. وإذا لم يكن لديك بطاقة فيزا أو بطاقة لدفع رسوم الدورة. يمكنك أن تجعل شخص ما يشتري لك بطاقة هدية بقيمة الدورة التي تريدها ثم استخدامها وسيتم إضافة الرصيد الخاص بقيمة البطاقة لحسابك وستجد تفاصيل عن ذلك هنا: شراء بطاقة هدية استخدام بطاقة الهدية وبعد شحن البطاقة يمكنك محادثة الدعم للحصول على العرض من خلال الرابط التالي : https://support.academy.hsoub.com/conversations
  25. يمكنكي إرفاق سؤالك مباشرة وسيتم مساعدتك من قبل المدربين والمبرمجين والأشخاص الأخرين المتاحين.
×
×
  • أضف...