-
المساهمات
14543 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
385
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
ربما بسبب الـ Overfitting، ويحدث التدريب الزائد أو فرط التخصص في حال تعلم النموذج بيانات التدريب بشكل جيد جدًا، لدرجة أنه يبدأ في حفظ الضوضاء أو التفاصيل غير المهمة في بيانات التدريب، بالتالي يصبح النموذج جيدًا جدًا في التنبؤ ببيانات التدريب، ولكنه لا يؤدي أداءً جيدًا على البيانات الجديدة التي لم يرها من قبل أي بيانات التحقق، وارتفاع دقة التدريب مع ثبات دقة التحقق يعني مشكلة تدريب زائد. أو ربما مشكلة في بيانات التحقق ففي حال صغيرة جدًا، لن تكون ممثلة بشكل جيد للبيانات الحقيقية، وذلك يجعل دقة التحقق غير مستقرة أو لا تعكس الأداء الحقيقي للنموذج، وأيضًا لو مختلفة بشكل كبير عن بيانات التدريب من حيث التوزيع أو الخصائص، فلن يكون النموذج قادرًا على التعميم بشكل جيد عليها. أو معدل التعلم غير المناسب Learning Rate فعند إرتفاعه بشكل كبير مرتفعًا فسيتجاوز النموذج الحد الأمثل ولا يتمكن من الاستقرار على حل جيد لبيانات التحقق، ولو منخفضًا جدًا، فسيستغرق النموذج وقتًا طويلاً للتعلم على بيانات التحقق، أو لا يتعلم بشكل فعال على الإطلاق.
- 2 اجابة
-
- 1
-
-
آلية الإختبار هي كالتالي: إجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع إلى أسبوعين. إجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتُطرح أسئلة خلالها. إن سارت على جميع الخطوات السابقة بشكل صحيح، تحصل على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معنا من جديد.
- 5 اجابة
-
- 1
-
-
بعد إنهاء 4 مسارات من الدورة على الأقل، أو الدورة بالكامل عليك رفع المشاريع التي قمت بها بالدورة على حسابك في github، ثم التحدث لمركز المساعدة وإخبارهم أنك تريد التقدم للإختبار وتوفير روابط المشاريع على github. ثم الإنتظار لبعض الوقت لحين مراجعة المشاريع وسيتم الرد عليك، وتحديد موعد لإجراء مقابلة.
- 5 اجابة
-
- 1
-
-
ليس بالضرورة، الأهم هو التوازن بين الدقتين، فارتفاع دقة التدريب مع ارتفاع دقة التحقق مع تقارب بينهما يعني أن النموذج يتعلم بشكل فعال ويُعمَّم جيدًا على البيانات الجديدة. ولو ارتفعت دقة التدريب كثيرًا بينما توقفت دقة التحقق أو انخفضت، فتدل على الإفراط في التخصيص حيث يحفظ النموذج بيانات التدريب بدلًا من تعلم الأنماط العامة. أيضًا استقرار دقة التحقق، فالهدف الرئيسي هو تحقيق دقة تحقق عالية ومستقرة، حتى لو توقفت دقة التدريب عن الزيادة، وأحيانًا تكون الزيادة المستمرة في دقة التدريب مع تراجع التحقق علامة سلبية على Overfitting. وعليك مراقبة الفرق بين الدقتين، الفرق الكبير بين دقة التدريب والتحقق مثل 98% تدريب مقابل 75% تحقق يشيران إلى مشكلة في التعميم، أما الفرق الصغير 90% تدريب مقابل 88% تحقق يُعتبر مؤشرًا جيدًا على توازن النموذج. وللعلم في مراحل التدريب أي في المراحل الأولى، من الطبيعي أن تزيد كلتا الدقتين معًا، ولاحقًا، ربما تستمر دقة التدريب في الزيادة بسبب تحسين النموذج لتفاصيل البيانات، لكن يجب ألا تتدهور دقة التحقق بشكل ملحوظ. ولا تعتمد فقط على الدقة، تتبع الخسارة Loss أثناء التدريب، فأحيانًا تتحسن الدقة مع زيادة الخسارة في بيانات التحقق، وذلك يعتبر مشكلة، واستخدم مقاييس أخرى مثل Precision، وRecall، أو منحنى ROC حسب طبيعة المهمة.
- 3 اجابة
-
- 1
-
-
عليك تثبيت Dart SDK من خلال الرابط التالي: https://docs.flutter.dev/get-started/install وربما المشكلة أن برنامج الحماية من الفيروسات لديك يقوم بحذف ملف dart.exe لذا بعد إعادة التثبيت من الرابط السابق، قم باستثناء مجلد D:\scr\flutter من برنامج الحماية لكي لا يقوم بعمل Scan على ملفاته.
-
بالطبع، Batch Normalization تعمل على تثبيت التوزيع الإحصائي للمدخلات عن طريق تعديل المتوسط والتباين للدفعة batch أثناء التدريب، وDropout يغير التوزيع بشكل عشوائي عن طريق إسقاط بعض الوحدات neurons، وذلك يتعارض مع جهود BN لتوحيد المدخلات. بالتالي تقلبات أكبر في إحصائيات BN كالمتوسط والتباين، وصعوبة في تقارب النموذج بسبب عدم استقرار التوزيعات. الترتيب الأمثل هو طبقة Dense ثم Batch Normalization ثم وظيفة التنشيط Activation ثم Dropout، وفي حال تطبيق Dropout قبل BN، فإن إسقاط الوحدات العشوائي سيؤثر على إحصائيات الدفعة التي تعتمد عليها BN، وسيؤدي إلى نتائج غير متوقعة. عامًة جرب ترتيبات مختلفة، وخفِّض معدل الإسقاط مثل 0.2 بدلًا من 0.5 في حال تستخدم BN، ولو لاحظت تراجعًا في دقة التدريب underfitting أو تقلبات كبيرة، فقلل من استخدام Dropout أو BN.
- 3 اجابة
-
- 1
-
-
عليك تثبيت: sudo apt install nautilus-share
-
أسهل طريقة هي بالضغط على المجلد بزر الفأرة الأيمن ثم اختر local network share ثم اضغط على share this folder وسيظهر لك رسالة تخبرك بأنك بحاجة إلى تثبيت service لمشاركة الملفات، اضغط على install وسيتم تثبيت samba. بعد الإنتهاء من التثبيت، اضغط على الخيار guest access وأيضًا allow others to create and delete ثم اضغط على create share: الآن عليك تفقد ما هو عنوان الـ IP الخاص بالحاسوب الذي تقوم بمشاركة الملفات منه، وذلك من خلال تنفيذ الأمر التالي: ip add ستجده بجانب كلمة inet انسخه وضعه في مكان لاستخدامه على الحاسوب الآخر. الآن افتح منفذ الأوامر terminal واكتب به التالي: sudo smbpasswd -a اسم المستخدم استبدل اسم المستخدم باسم المستخدم الذي تريده أيًا يكن وسيطلب منك كتابة الباسورد مرتين وتذكره جيدًا وذلك الباسورد سيكون خاص بذلك المستخدم على Samba أي ليس المقصود الباسورد الخاص بالمستخدم الخاص بك على ubuntu. ثم تنفيذ الأمر التالي أيضًا: sudo systemctl restart smbd توجه الآن للحاسوب الآخر ومن مدير الملفات اضغط على other locations وستجد بالأسفل حقل بجانبه connect to server اكتب به التالي: smb://120.20.30.60/ استبدل 120.20.30.60 بعنوان الـ IP الخاص بالحاسوب الآخر والذي حصلنا عليه منذ قليل. ثم اضغط على connect: ستجد المجلد الذي شاركته اضغط عليه ثم اختر registered user ثم اكتب اسم المستخدم الذي أنشأته منذ قليل وكلمة المرور ثم اضغط على connect.
-
هناك أمر يجب توضيحه TanStack Query هي أدارة لإدارة حالة التطبيق لكن هي async أي بيانات لا تصل إليها مباشرًة بل من الخادم، بينما لو لديك بيانات non-async فلا حاجة إليها استخدم Zustand، وللعلم تستطيع استخدام كلاهما لا مشكلة. أيضًا لما لا تستخدم RTK Query معRedux Toolkit. createContext مع localStorage حل مقبول للمشاريع الصغيرة إلى المتوسطة، خاصةً لو البيانات محدودة ولا تحتاج إلى تحديثات متكررة، أي لا يتطلب إضافة مكتبات خارجية ويدعم تحديث الواجهة تلقائيًا عند تغيير الحالة ويناسب الحالات البسيطة مثل تخزين بيانات المستخدم الأساسية. لكن هناك سلبيات منها إعادة التصيير Re-renders، حيث أي تغيير في الحالة يؤدي إلى إعادة تصيير جميع المكونات المشتركة في الـ contextK ,يحتاج إلى تعليمات يدوية لمزامنة الحالة مع localStorage مثل useEffect. أيضًا localStorage غير مشفر، وذلك يعرض البيانات الحساسة للاختراق ويفضل استخدام HTTP-only Cookies للـ Tokens. بالتالي الأفضل استخدام Zustand مع Middleware للتخزين المحلي وهو الأنسب للمشاريع المتوسطة والكبيرة. import { create } from 'zustand'; import { persist } from 'zustand/middleware'; const useAuthStore = create( persist( (set) => ({ user: null, login: (user) => set({ user }), logout: () => set({ user: null }), }), { name: 'auth-storage', getStorage: () => localStorage, } ) ); const user = useAuthStore((state) => state.user); أو دمج TanStack Query مع التخزين المحلي باستخدام onSuccess في mutation وستتمكن من تسجيل الدخول لحفظ البيانات مباشرة في localStorage، واستخدام QueryClient لقراءتها لاحقًا. const { mutate: login } = useMutation({ mutationFn: loginApi, onSuccess: (data) => { localStorage.setItem('user', JSON.stringify(data.user)); queryClient.setQueryData(['user'], data.user); }, }); const user = JSON.parse(localStorage.getItem('user') || 'null'); const queryClient = useQueryClient(); queryClient.setQueryData(['user'], user);
- 2 اجابة
-
- 1
-
-
ستجدين أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
الأمر يتم على مستودع المشروع على GitHub حيث ستقوم بكتابة وصف للمشروع وطريقة استخدامه في ملف readme.md. من الممكن اتباع منهجية CRISP-DM (Cross-Industry Standard Process for Data Mining) كإطار عمل رئيسي، مع تكييفها لتناسب المشروع، بمعنى سيتم سرد وصف المشروع من خلال مراحل دورة حياة المشروع كالتالي: 1- الهدف من المشروع Business Understanding أي تحديد المشكلة التي كنت تواجهها، وهي تحليل توزيع الزبائن الجغرافي لتحسين الحملات التسويقية أو التخصيص، ثم حدد كيف ستقيس نجاح المشروع، أي ما هي المقاييس التي ستعتمد عليها لتقييم أداء النموذج KPIs؟ كدقة تحليل التوزيع، الفائدة المتحققة من القرارات المبنية على التحليل، إلخ. 2- استيعاب البيانات وجمعها Data Understanding وذلك بجمع بيانات المتجر كعناوين الشحن، IP الزبائن، وسجلات الطلبات. ثم تحليل أولي للبيانات لاكتشاف الأنماط أو المشكلات مثل قيم مفقودة في حقول البلدان، وذلك يُعرف باسم Exploratory Data Analysis - EDA أي تحديد مصادر البيانات وأنواعها وجودتها أي وثق أي تحديات متوقعة في جودة البيانات وكيف ستتعامل معها (البيانات المفقودة، البيانات غير الدقيقة وخلافه). 3- تحضير البيانات Data Preparation من خلال تنظيف البيانات كتصحيح أسماء البلدان وحذف البيانات غير المكتملة، ثم دمج البيانات من مصادر مختلفة مثل CRM وسجلات المبيعات، ثم تحويل البيانات إلى تنسيق مناسب كترميز البلدان برموز ISO. أي تحديد مرحلة تنظيف البيانات وتحويلها وتنفيذ تكامل البيانات في حال تم جمعها من مصادر مختلفة وكيف قمت بدمجها. 4- النمذجة Modeling باستخدام خوارزميات التجميع Clustering مثل K-Means أو خوارزميات التصنيف Classification حسب الهدف، والأدوات التي استخدمتها في ذلك مثل Python (Pandas, Scikit-learn) أو منصات مثل Tableau. 5- التقييم Evaluation أي وضح كيف ستقيم النموذج أو التحليل الإحصائي، مثل مقاييس Silhouette Score للتجميع. 6- النشر Deployment بتوضيح كيف قمت بدمج ذلك في المتجر، وهل سيتم عرضها في لوحة معلومات للمديرين؟ هل ستستخدم لتخصيص حملات تسويقية؟ هل ستدمج مع نظام إدارة علاقات العملاء (CRM)؟ ولو أردت تستطيع وضع أقسام توضح بها الأداء والموثوقية وأيضًا حالات الاستخدام Use Cases. بخصوص متطلبات النظام، فتنقسم إلى متطلبات وظيفية Functional Requirements وغير وظيفية Non-Functional. الأولى يندرج أسفلها جمع البيانات كستيراد البيانات من قواعد بيانات المتجر مثل MySQL, PostgreSQL، ودمج بيانات من مصادر خارجية مثل APIs جغرافية لتحديد الموقع من IP. ثم معالجة البيانات بتصنيف الزبائن حسب البلدان بدقة عالية وتوفير إمكانية تصفية البيانات حسب الفترات الزمنية. ثم التصور والتحليل بعرض خرائط حرارية Heatmaps لتوزيع الزبائن، وتوليد تقارير تفصيلية (PDF/Excel) بنسب التوزيع. ثم التكامل مع أدوات التسويق كـ Mailchimp لإرسال حملات مخصصة حسب المنطقة. ثم الأمان لتأمين البيانات الحساسة كعناوين الزبائن وفقًا لـ GDPR في حال الاستخدام في منطقة أوروبا. أما الغير وظيفية فهي: الأداء ستحتاج إلى معالجة البيانات في وقت لا يتجاوز 10 دقائق لكل مليون سجل. القابلية للتوسع بدعم زيادة حجم البيانات بنسبة 20% سنويًا. سهولة الاستخدام من خلال واجهة مستخدم بسيطة مع إمكانية تصدير البيانات بنقرة واحدة. التوافق والعمل على أنظمة تشغيل مختلفة Windows, Linux.
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
- 1 جواب
-
- 1
-
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
- 1 جواب
-
- 1
-
-
الـ L2 Regularization يُضاف إلى الطبقات للحد من مشكلة Overfitting عن طريق معاقبة الأوزان الكبيرة في النموذج. model.add(Dense(64, kernel_regularizer='l2'))
- 5 اجابة
-
- 1
-
-
ستقوم بتشغيل الـ terminal في مسار المجلد الذي به الملف الذي تريد تشغيله، بالنقر عليه بزر الفأرة الأيمن ثم اختر new terminal at folder: بعد ذلك اكتب الأمر التالي: python3 app.py ولو أردت ملف آخر استبدل app.py باسم الملف الذي تريده.
-
تكلفة الدورة هي 290 دولار، عند حسابها بالجنيه المصري ستكون 14,600 جنيه، لكن الدفع يتم بواسطة الدولار وليس الجنيه، وذلك عن طريق باي بال أو من خلال بطاقة إئتمانية credit card. يوجد حاليًا عرض دورتين بسعر دورة واحدة. بخصوص استرداد الاستثمار أرجو التواصل مع مركز المساعدة لتوضيح الأمر لك، والمناقشة بخصوص الأمور المالية.
-
بالطبع وتؤثر بشكل مباشر على أداء النموذج ووقت التدريب، للتوضيح Epoch دورة واحدة تمر خلالها الشبكة على كامل بيانات التدريب مرة واحدة، بينما Batch Size هي عدد العينات التي تُعالَج معًا قبل تحديث أوزان النموذج مثلاً 32، 64، 128 عينة في كل خطوة. بالتالي لو لديك 1000 عينة وbatch size = 100، فسيكون لديك 10 خطوات لكل epoch أي يتم القسمة /. زيادة batch size يؤدي إلى تقليل عدد الخطوات في كل epoch لأنك تُعالج عينات أكثر في كل خطوة، وتحتاج إلى تقليل عدد الـ epochs لأن التحديثات تكون أقل تكرارًا ولكن أكثر استقرارًا. ولكن يؤدي إلى تعميم أسوأ Generalization بسبب تقليل الضجيج المفيد في التدرج، أيضًأ الحاجة إلى ذاكرة أكبر. أما تقليل batch size فأحيانًا تحتاج إلى زيادة عدد الـ epochs لأن التحديثات تصبح أكثر تكرارًا ولكنها أكثر ضجيجًا noisy، وسيصبح التدريب أبطأ بسبب التحديثات المتكررة.
- 3 اجابة
-
- 1
-
-
MAE أو متوسط الخطأ المطلق تستخدمه لو تريد قياس سهل التفسير بنفس وحدة البيانات الأصلية، وفي وجود قيم متطرفة Outliers، حيث أن MAE أقل حساسية لها مقارنةً بـ MSE/RMSE لأنه لا يعاقب الأخطاء الكبيرة بشكل مبالغ فيه. أيضًا في حال جميع الأخطاء متساوية في الأهمية، بغض النظر عن حجمها مثل تكاليف ثابتة لكل خطأ. كالتنبؤ بأسعار المنازل في سوق مستقر، حيث الأخطاء الصغيرة والكبيرة لها تأثير مماثل على القرار. MSE أو متوسط مربع الخطأ مناسب لمعاقبة الأخطاء الكبيرة بشدة، بمعنى الأخطاء الكبيرة مُكلفة بشكل غير خطي كحوادث السيارات في التنبؤ بالسلامة. وعند استخدام خوارزميات تعتمد على التفاضل كالانحدار الخطي، حيث إن MSE قابل للتفاضل بسلاسة، وذلك يسهل عملية التحسين. لاحظ وحدة القياس هنا مربع الوحدة الأصلية مثل دولار²، وذلك يعقد التفسير المباشر. أما RMSE وهو جذر متوسط مربع الخطأ فمناسب لو تريد مقياسًا بنفس وحدة البيانات الأصلية مثل MAE لكن مع إعطاء وزن أكبر للأخطاء الكبيرة مثل MSE. وعند المقارنة بين نماذج مختلفة، حيث يُفضل RMSE عند الاهتمام بالحد من الأخطاء الكبيرة تحديدًا، كالتنبؤ بدرجات الحرارة في أنظمة الطقس، حيث الأخطاء الكبيرة كـ 10°C أكثر خطرًا من الصغيرة.
- 4 اجابة
-
- 1
-
-
يوجد تخصصات أكاديمية ومهنية تتعلق بالأسهم والأسواق المالية، وتشمل تخصصات في الأسهم وبرامج دراسات عليا، ومن بينها المالية ويشمل دراسة الأسواق المالية، والاستثمارات، وإدارة المحافظ الاستثمارية، والتحليل المالي. أما الهندسة المالية فهو مجال متعدد التخصصات يجمع بين المفاهيم المالية والرياضية والهندسية والتكنولوجية، والغرض منه تطبيق الأدوات والأساليب الرياضية والإحصائية لحل المشكلات المالية، وتصميم أدوات مالية جديدة، وإدارة المخاطر. بمعنى تطبيق المبادئ الهندسية والأساليب الرياضية على المشكلات المالية، كالتالي: تصميم وتطوير الأدوات المالية كالمشتقات المالية والخيارات والعقود المستقبلية. إدارة المخاطر المالية بتحليل وتوقع المخاطر المرتبطة بالاستثمارات والأسواق. النمذجة المالية من خلال بناء نماذج رياضية للتنبؤ بحركة الأسواق وتسعير الأصول. التمويل الكمي باستخدام التقنيات الكمية والبرمجة لتحليل البيانات المالية واتخاذ القرارات الاستثمارية. وحتى الخبراء في مجال الأسهم يتعرضون للخسارة، فالأسواق المالية معقدة وتتأثر بعوامل متعددة، بما في ذلك الأحداث الاقتصادية العالمية، والتغيرات السياسية، والمشاعر العامة للمستثمرين. لكن الخبرة والمعرفة التي يمتلكها الخبراء تساعدهم على إدارة المخاطر بتقليل الخسائر المحتملة من خلال تنويع الاستثمارات واستخدام استراتيجيات تحوط. اتخاذ قرارات مبنية على التحليل حيث يعتمدون على التحليل الأساسي والفني لاتخاذ قرارات استثمارية مدروسة، ويستخدمون الخسائر كفرصة للتعلم وتحسين استراتيجياتهم المستقبلية. والخسائر هي جزء طبيعي من عملية الاستثمار، والنجاح على المدى الطويل يتطلب القدرة على التعامل مع تلك الخسائر بفعالية. بخصوص الفرق بين مستثمري الأسهم والمضاربين، فالمستثمرين رضهم الاستثمار على المدى الطويل لتحقيق نمو في رأس المال والاستفادة من توزيعات الأرباح. ويعتمدون على التحليل الأساسي لتقييم القيمة الحقيقية للشركات ويحتفظون بالأسهم لفترات طويلة، أيضًا يميلون إلى تحمل مخاطر أقل من خلال الاستثمار في شركات مستقرة وذات أساسيات قوية. بينما المضاربون فمن الاسم الغرض تحقيق أرباح سريعة من التغيرات القصيرة المدى في أسعار الأسهم، ويعتمدون على التحليل الفني ونماذج الرسوم البيانية لتوقع حركة الأسعار على المدى القصير، كذلك يتحملون مخاطر أعلى، حيث تكون الأرباح أو الخسائر كبيرة وفي فترة زمنية قصيرة. خضت تجربة في سوق بورصة افتراضي واكتشفت العديد من الأمور
-
هل الأصفار تمثل قيمًا صحيحة كغياب النشاط أو قيمًا مفقودة missing data؟ في حال مفقودة استخدم تقنيات مثل KNNImputer أو تعويضها بالمتوسط/المنوال، ولو صحيحة تعامل معها كجزء من التوزيع الطبيعي للبيانات. ولو المشكلة تصنيف Classification، فاستخدم تقنيات مثل SMOTE لإنشاء عينات جديدة للفئات النادرة، وحدد أوزانًا للفئات كالتالي TensorFlow: class_weight={0: 0.1, 1: 0.9}. أما لو المشكلة انحدار Regression جرب تحويل الـ Target باستخدام log(1 + y) لتقليل تأثير القيم الكبيرة، وحول المشكلة إلى تصنيف بتقسيم الـ Target إلى فئات (0، 5-10، 10-15، إلخ). أو أضف ميزة ثنائية binary feature تشير هل القيمة تساوي صفرًا أم لا. df['is_zero'] = df['efs_combined'].apply(lambda x: 1 if x == 0 else 0) أو استخدم نماذج مع Regularization ومنها L1/L2 في الانحدار الخطي لتجنب التركيز المفرط على الأصفار، كالتالي في Keras: model.add(Dense(64, kernel_regularizer='l2')) بخصوص اختيار الطبقة الأخيرة، ففي Binary Classification في حال تريد احتمالًا بين 0 و1 (وجود/عدم وجود حدث)، استخدم Sigmoid. model.add(Dense(1, activation='sigmoid')) في الإنحدار Regression لو تتنبأ بقيمة رقمية مستمرة كأسعار وقياسات، استخدم Linear. model.add(Dense(1, activation='linear'))
- 5 اجابة
-
- 1
-
-
متغيرات y_target_test و target لديهما أبعاد غير متوافقة، لاحظ y_target_test يحتوي على 4320 عينة وtarget يحتوي على 3 عينات. ربما الـ target الذي تستخدمه في الدالة ليس توقعات النموذج، بل هو متغير آخر بأبعاد خاطئة، عليك استخدام model.predict() لإنشاء التوقعات: y_pred = deep_hit_model.predict(x_test_scaled) mean_squared_error_value = mean_squared_error(y_target_test, y_pred) أو النموذج يعود بمخرجات متعددة Multi-output Regression، فسيكو يكون y_pred ذو شكل (num_samples, num_outputs)، بينما y_target_test له شكل (num_samples,). بالتالي لو y_target_test له شكل (4320,)، فيجب أن يكون y_pred له شكل (4320, 1) أو (4320,). y_pred = y_pred.reshape(-1, 1) # أو y_target_test = y_target_test.reshape(-1, 1) أو ربما استخدمت اسم متغير خاطئ مثل target بدلًا من y_pred.
- 6 اجابة
-
- 1
-