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

Mustafa Suleiman

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

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

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

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

    384

كل منشورات العضو Mustafa Suleiman

  1. اختيار النموذج المناسب يعتمد على العديد من العوامل بما في ذلك طبيعة البيانات، الهدف من النموذج، والأداء المطلوب. بالتالي القول بأن نموذجًا معينًا مثل RandomForestClassifier هو دائمًا أفضل من LinearRegression غير دقيق، لأن كل منهما يخدم أغراضًا مختلفة ويعمل بشكل أفضل في ظروف معينة. لديك LinearRegression نموذج بسيط وسهل الفهم يستخدم للعلاقات الخطية بين المتغيرات المستقلة والمتغير التابع، ومناسب في حال العلاقة بين متغيراتك خطية وتحتاج إلى تفسير بسيط للنموذج. بينما RandomForestClassifier نموذج أكثر تعقيدًا يستخدم للأغراض التصنيفية، ويعمل بشكل جيد عندما تكون البيانات معقدة وتحتوي على العديد من الميزات التي قد تتفاعل مع بعضها بطرق غير خطية، ويتميز بأنه يستخدم مجموعة من الأشجار decision trees ويجمع نتائجها للحصول على تصنيف أكثر دقة. واستخدم التحقق المتبادل لتقييم أداء النموذج على مجموعة من البيانات غير المرئية للنموذج، وقد تحتاج إلى ضبط الباراميترات للنماذج المعقدة لتحسين أدائها.
  2. بالضبط، ففي مكتبة scikit-learn، باراميتر normalize لم يعد موجودًا في الإصدار 0.24.0 وما بعده من النموذج LinearRegression. في الإصدارات الأحدث من المكتبة، عليك استخدام StandardScaler أو Normalizer من مكتبة sklearn.preprocessing لتطبيع البيانات قبل تمريرها إلى النموذج. للتوضيح: from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler import numpy as np X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) y = np.array([1, 2, 3, 4]) scaler = StandardScaler() X_scaled = scaler.fit_transform(X) model = LinearRegression() model.fit(X_scaled, y) predictions = model.predict(X_scaled) print(predictions) لاحظ تطبيع البيانات باستخدام StandardScaler قبل استخدامها في تدريب النموذج LinearRegression، وذلك يحقق نفس النتيجة التي كان يحققها استخدام الباراميتر normalize=True في الإصدارات الأقدم.
  3. الأمر محوره الأساسي هو قاعدة البيانات، اي عليك إنشاء مُخطط لقاعدة البيانات لحفظ بيانات العملاء من ضمنها طرق الدفع الخاصة بهم والتعاملات السابقة والمحفظة، أي يشمل التالي: جدول العملاء Customers Table: مُعرف العميل ID الاسم البريد كلمة المرور في شكل hash بالطبع ... (أي أعمدة إضافية تحتاجها مثل عنوان العميل، رقم الهاتف، إلخ). جدول طرق الدفع Payment Methods Table: Payment Method ID (المفتاح الأساسي): معرّف فريد لكل طريقة دفع. Customer ID (مفتاح خارجي): معرّف العميل المرتبط بطريقة الدفع. Payment Method Type: نوع طريقة الدفع (مثل بطاقة الائتمان، PayPal). Payment Method Details: تفاصيل طريقة الدفع (مثل رقم البطاقة، تاريخ الانتهاء). جدول المعاملات Transactions Table: Transaction ID (المفتاح الأساسي): معرّف فريد لكل معاملة. Customer ID (مفتاح خارجي): معرّف العميل المرتبط بالمعاملة. Transaction Date: تاريخ المعاملة. Transaction Amount: مبلغ المعاملة. Transaction Status: حالة المعاملة (مثل معلقة، ناجحة، فاشلة). جدول المحفظة Wallet Table: Wallet ID (المفتاح الأساسي): معرّف فريد لكل محفظة. Customer ID (مفتاح خارجي): معرّف العميل المرتبط بالمحفظة. Wallet Balance: رصيد المحفظة. و عندما يضيف العميل طريقة دفع جديدة، يتم إنشاء سجل جديد في جدول طرق الدفع، وعندما يقوم العميل ببدء معاملة، يتم إنشاء سجل جديد في جدول المعاملات. إن كانت المعاملة ناجحة، يتم تحديث رصيد المحفظة في جدول المحفظة وفقًا لذلك. بعد ذلك عندما يطلب العميل استرداد أو إرجاع منتج، يتم تحديث رصيد المحفظة وإنشاء سجل معاملة جديد للإشارة إلى التغيير في الرصيد. وكنصيحة، اعتمد على الـ Tokenization لتخزين تفاصيل طرق الدفع بدلاً من تخزين المعلومات الفعلية لطرق الدفع، فالتوكنيزاشن هو عملية استبدال معلومات الدفع الحساسة برمز فريد (Token) لا يمكن استخدامه إلا في سياق محدد.
  4. ليس خاصًا بمجال معين؛ بل محرك بحث شامل للأدبيات الأكاديمية في مجموعة واسعة من التخصصات والمجالات. أي باستطاعتك العثور على مقالات بحثية، أطروحات، كتب، أوراق المؤتمرات، وغيرها من المصادر العلمية في مختلف المجالات، بما في ذلك الذكاء الاصطناعي، علوم الكمبيوتر، الطب، الفيزياء، العلوم الاجتماعية، وغير ذلك. مثلاً العثور على أحدث الأبحاث والتطورات في مجال الذكاء الاصطناعي، مما يساعدك في البقاء على اطلاع على الاتجاهات الجديدة والتقنيات المتقدمة. أو لو كنت تعمل على مشروع بحثي أو تحضر لكتابة ورقة علمية، فتستطيع استخدام Google Scholar لمراجعة الأدبيات الموجودة وفهم السياق الأكاديمي الذي تعمل فيه. وإذا أردت مصادر جيدة للمتابعة بأحدث التطورات، فإليك التالي: ArXiv: منصة مفتوحة للأبحاث الأكاديمية في مختلف المجالات، بما في ذلك الذكاء الاصطناعي، حيث يمكن للباحثين نشر أوراقهم قبل مراجعتها من قبل الأقران. NeurIPS: مؤتمر سنوي بارز في مجال التعلم الآلي والذكاء الاصطناعي، يجمع الباحثين لتقديم أحدث الأبحاث والتطورات في هذه المجالات. alignmentforum.org: منتدى متخصص لمناقشة قضايا مواءمة الذكاء الاصطناعي مع القيم البشرية، ويركز على الأبحاث حول كيفية جعل الذكاء الاصطناعي آمنًا وموثوقًا. ijcai.org: الموقع الرسمي للمؤتمر الدولي للمشاريع المشتركة في الذكاء الاصطناعي (IJCAI)، وهو مؤتمر سنوي يعرض أحدث الأبحاث في مجالات متعددة من الذكاء الاصطناعي. icml.cc: الموقع الرسمي للمؤتمر الدولي للتعلم الآلي (ICML)، وهو أحد أهم المؤتمرات السنوية في مجال التعلم الآلي حيث يتم تقديم أبحاث جديدة ومبتكرة. nips.cc: الموقع الرسمي لمؤتمر NeurIPS (المعروف سابقًا بـ NIPS)، وهو مؤتمر رئيسي في مجالات التعلم الآلي والشبكات العصبية، يجمع الأبحاث والتطورات الحديثة في هذه المجالات.
  5. عليك إنشاء جدول وسيط Intermediary Table يسمى مثلاً Service_Providers يشير إلى العلاقة بين المستخدمين (العارضين) والخدمات. و يحتوي الجدول على مفتاحين خارجيين، مفتاح المستخدم (user_id) ومفتاح الخدمة (service_id). ويجب أن يكون المستخدم المشار إليه في الجدول هو من نوع "عارضي الخدمات" عبر استخدام الدور المحدد في جدول User_Role. لذا، النموذج النهائي يبدو كالتالي: Users: يحتوي على بيانات المستخدمين. Services: يحتوي على بيانات الخدمات. User_Role: يحتوي على أدوار المستخدمين. Service_Providers: يحتوي على العلاقات بين المستخدمين (عارضي الخدمات) والخدمات. بالنسبة لتمثيل العلاقات: العلاقة بين Users و Service_Providers: علاقة واحد إلى عدة (1:N). العلاقة بين Services و Service_Providers: علاقة واحد إلى عدة (1:N). العلاقة بين Users و User_Role: علاقة واحد إلى عدة (1:N). مخطط النموذج (MCD): Users (user_id, user_name, user_email) Services (service_id, service_name, service_description) User_Role (role_id, role_name) Service_Providers (service_provider_id, user_id, service_id) Users -1:N-> Service_Providers (user_id) Services -1:N-> Service_Providers (service_id) User_Role -1:N-> Users (role_id)
  6. في تحليل الأداء لنماذج الانحدار Regression Models، هناك عدة مقاييس بجانب متوسط مربع الخطأ Mean Squared Error - MSE لتقييم جودة النموذج. كل مقياس له مزاياه وعيوبه ويعتمد اختيار المقياس المناسب على السياق المحدد والتحليل المطلوب، مثلاً، MAPE غير مناسب في حال هناك قيم قريبة من الصفر في البيانات، حيث يؤدي ذلك إلى قيم غير معقولة. و RMSE و MAE يقدمان معلومات عن حجم الخطأ، لكن RMSE يعطي وزنًا أكبر للأخطاء الكبيرة بسبب التربيع، بالتالي مفيد في حال كانت الأخطاء الكبيرة غير مقبولة في مشروعك. ولو كانت الأخطاء تتبع توزيعًا طبيعيًا، فإن MSE و RMSE يكونا أكثر ملاءمة. أما إن كنت تهتم بالأخطاء النسبية أكثر من الأخطاء المطلقة، إذن MAPE أو MSLE أكثر ملاءمة. إليك كل مقياس: 1- Mean Absolute Error - MAE أو متوسط الخطأ المطلق: [ MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i| ] حيث ( y_i ) هو القيمة الحقيقية و ( \hat{y}_i ) هو التنبؤ من النموذج، ويقدم MAE فكرة عن حجم الخطأ المتوقع في التنبؤات. 2- جذر متوسط مربع الخطأ أو Root Mean Squared Error - RMSE: [ RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2} ] يعبر RMSE عن نفس المعلومات الموجودة في MSE ولكن في نفس وحدة القيم الأصلية مما يسهل فهمه في بعض الأحيان. 3- معامل التحديد (R-squared - (R^2)): [ R^2 = 1 - \frac{\sum_{i=1}^n (y_i - \hat{y}i)^2}{\sum{i=1}^n (y_i - \bar{y})^2} ] حيث ( \bar{y} ) هو المتوسط الحسابي للقيم الحقيقية. يعبر ( R^2 ) عن نسبة التباين في البيانات التي يمكن تفسيرها بواسطة النموذج، وقيمته تتراوح بين 0 و 1. 4- Mean Absolute Percentage Error - MAPE أو متوسط النسبة المطلقة للخطأ: [ MAPE = \frac{1}{n} \sum_{i=1}^n \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100 ] يعطي MAPE فكرة عن حجم الخطأ الكلي كنسبة مئوية من القيم الحقيقية، وهو مفيد عند الرغبة في فهم الخطأ النسبي بدلاً من الخطأ المطلق. 5- متوسط اللوغاريتم المربع للخطأ Mean Squared Logarithmic Error - MSLE: [ MSLE = \frac{1}{n} \sum_{i=1}^n \left( \log(1 + y_i) - \log(1 + \hat{y}_i) \right)^2 ] يستخدم MSLE عندما تكون القيم الحقيقية والتنبؤات قد تأخذ قيمًا صغيرة جدًا أو كبيرة، ويعطي وزنًا أكبر للأخطاء النسبية الصغيرة. 6- إحصائية AIC (Akaike Information Criterion) و BIC (Bayesian Information Criterion): [ \text{AIC} = 2k - 2\ln(L) ] [ \text{BIC} = \ln(n)k - 2\ln(L) ] ( k ) هو عدد المعاملات في النموذج و ( L ) هو دالة الاحتمال الماكسيمالي للنموذج، وتلك الإحصائيات تأخذ في الاعتبار جودة النموذج وعدد المعاملات، ما يساعد في تجنب الإفراط في التكييف overfitting.
  7. أرجو النزول أسفل الفيديو لنهاية الصفحة وستجد صندوق تعليقات كما هنا.
  8. لا عليك تستطيع التعليق أسفل الفيديو وترك السؤال الحالي كما هو تستطيع تعديله وليس حذفه فلا داعي لأيهما.
  9. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس وذلك لمساعدتك بشكل أفضل
  10. هل قمتي بتشغيل unity كمسؤول administrator؟ أيضًا في حال كان اسم مجلد المشروع يحتوي على أية حروف خاصة عليك حذفها مثل ) أو - أو ' ، وأيضًا أسماء الملفات في المشروع وعدم استخدام أسماء عربية. أيضًا تأكدي من تثبيت NDK من خلال Unity Hub وتفقد المسار path الخاص به في Unity. وفي حال استمرار المشكلة عليك التعليق أسفل السؤال، وأيضًا مشاركة كامل رسالة الخطأ.
  11. ليس المطلوب منك ذلك وذلك ليس ممكننًا، المطلوب هو الإهتمام بالأساسيات وليس المكتبات والإطارات، بعدها تستطيع الإهتمام بذلك. للتوضيح بخصوص الأساسيات أقصد ما يلي: فهم الأساسيات المتعلقة بأنواع النماذج المختلفة مثل الانحدار Regression، التصنيف Classification، وخفض الأبعاد Dimensionality Reduction. والتعمق في النماذج الشائعة، ركز على النماذج الأكثر شيوعًا واستخدامًا مثل: الانحدار الخطي (Linear Regression) الانحدار اللوجستي (Logistic Regression) شجرة القرار (Decision Tree) الغابات العشوائية (Random Forest) آلات الدعم المتجهة (Support Vector Machines) K-الأقرب جار (K-Nearest Neighbors) شبكات العصبية (Neural Networks) تحليل المكونات الرئيسية (PCA) وفهم مفاهيم التقييم والتحقق، مثل دقة النموذج Model Accuracy، الالتباس Confusion Matrix، والتحقق المتقاطع Cross-Validation. أي عليك التمكن من استخدامها بشكل متقدم نوعًا ما بحيث تستطيع تنفيذ مشاريع كاملة من خلالها، وسيتم سؤالك عن الأمور الهامة بها وليس كل شيء.
  12. في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة. إن استمرت أرجو تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
  13. أرجو التعليق أسفل فيديو الدرس الخاص بالسؤال لمساعدتك بشكل أفضل، بينما نطرح الأسئلة العامة هنا. ستجد أسفل فيديو الدرس صندوق تعليقات.
  14. الأمل ممل بالفعل وبحاجة إلى صبر، في حال لا يوجد من يشاركك نفس الإهتمام، يمكنك تفقد المجتمعات الخاصة بدراسة ما تريده مثل البرمجة، لديك مجتمع IO وأيضًا لديك مجموعات الفيس بوك أو LinkedIn بحيث تقوم بإنشاء حساب والتواصل مع من لديهم نفس الإهتمام ونفس المستوى في رحلة الدراسة، قم بالسؤال عن مجموعة قائمة بالفعل للإشتراك بها والتواصل مع من بها.
  15. هل تم حل المشكلة؟ للتوضيح: const data = fetchDataFromServer(); console.log(data); // قم بطباعة data وتفقد ما الذي يتم إعادته const result = data.map(item => item.value); // هنا قد تواجه مشكلة إذا لم تكن data مصفوفة console.log(result);
  16. لديكِ مشكلة في عملية تحويل التعليمات البرمجية باستخدام IL2CPP (Intermediate Language To C++) في Unity. حاولي إعادة تشغيل Unity لكن كمسؤول أي البحث عنه في شريط البحث بالأسفل في الويندوز ثم اضغطي بزر الفأرة الأيمن ثم اختاري run as administrator، وإعادة التجربة. وإن استمرت المشكلة عليكِ تنظيف وإعادة بناء المشروع من خلال التوجه إلى Edit > Project Settings > Editor ثم اضغطي على زر Clean. ثم إعادة بناء المشروع من خلال التوجه إلى Build ثم اختاري Rebuild Project.
  17. عملية البناء باستخدام il2cpp لم تكتمل بنجاح بسبب نقص المساحة على الجهاز No space left on device. عليكِ تفقد المساحة على قرص الـ C وإفراغ بعض المساحة لأن مشاريع Unity بحاجة إلى مساحة فارغة ليست بالصغيرة. وإن لم تتمكني من إفراغ مساحة كافية عليك تغيير مسار الإخراج output directory لملفات المشروع، من خلال التوجه إلى Edit > Project Settings > Editor ثم تغيير مسار Output Path إلى قرص فارغ على حاسوبك.
  18. تلك ليست طريقة ضغط بل format أي تنسيق للكود، وحاليًا توجد أدوات كثيرة تفعل ذلك، مثل أداة Prettier.
  19. لست مرغوم، تستطيع التقدم للوظائف التي تتطلب مستوى Junior، لكن في حالة Node.js الأمر صعب لأن تلك الوظائف بحاجة إلى خبرة أكثر من سنة لكون العمل من خلال Node.js يتطلب خبرة ومعرفة فالأخطاء يُسهل الوقوع بها عند العمل من خلالها، أيضًا لإخراج كود جيد الأمر يتطلب خبرة، فهي ليست مثل لارافل. لذا عليك تحديد وجهتك، وتفقد الوظائف المتاحة في بلدك أولاً وما المطلوب ثم تقوم بتعلمه وبناء مشاريع حقيقية وليست نماذج، من أجل تكوين معرض أعمال جيد ويا حبذا لو كانت تلك المشاريع غير اعتيادية بل لحل مشكلة تواجهها أنت مثلاً أو مشكلة من حولك. وبخصوص Node.js ستحتاج إلى تعلم إطار Nest.js فهو مخصص للمشاريع المعقدة وليس express.js. أي المقصد هو تحديد وجهتك وليس التشتت بين هذا وذاك فلن تصل بتلك الطريقة، ويمكنك تجربة Flutter لا مشكلة لكن عليك تحديد ما المجال الذي تريده والتزم به ولا تحيد عنه لفترة.
  20. السؤال غير واضح ما هي الطريقة الغير المعتادة؟ فالمثال الموضح هو كود CSS عادي.
  21. عليك التمكن من Python أولاً، ثم تعلم الأساسيات في الجبر الخطي، والإحصاء، وحساب التفاضل والتكامل، بعد ذلك ابدأ بتعلم مفاهيم التعلم الخاضع للإشراف وغير الخاضع للإشراف واستخدم مكتبات مثل Scikit-Learn لتطبيق المفاهيم. ثم تأتي خطوة تعلم الأساسيات في معالجة الصور وابدأ باستخدام مكتبات مثل OpenCV. يليها تعلم أساسيات الشبكات العصبية بالإعتماد على مكتبات مثل TensorFlow و PyTorch، وركز على الشبكات العصبية التلافيفية (CNNs) وتطبيقاتها في الرؤية الحاسوبية. ثم قم بتطبيق ما تعلمته في مشاريع عملية، مثل بناء نموذج لتصنيف الصور أو اكتشاف الكائنات.
  22. قبل الإجابة على سؤالك ما هو سوق العمل الذي تستهدفه أي العمل في شركة أم العمل الحر (مواقع عربية أو أجنبية)؟
  23. مكتبة nunit.framework يتم الإشارة إليها من قبل مكتبة Unity.InputSystem.TestFramework، ولكن لا يمكن تضمينها أو لم يتم العثور عليها. حاولي تجربة إصدار 1.4 input system بدلاً من 1.5 لأن نسخة 2019 من محرر unity تدعم ذلك الإصدار أو أقل منه. إن استمرت المشكلة افتحي نافذة "Package Manager" في Unity (Window > Package Manager)، وابحثي عن حزمة Unity.InputSystem.TestFramework أو أي حزمة مشابهة تتضمن مكتبات الاختبار، في حال الحزمة غير ضرورية للتطبيق، قومي بإزالتها.
  24. عليك تنزيل Netcat من مواقع موثوقة أو استخدام بدائل مثل Ncat التي تأتي مع حزمة Nmap. أي عليك تثبيت ما أخبرك به حمزة في التعليق السابق، ثم أعد تشغيل منفذ الأوامر وتجربة الأمر مرة أخرى.
  25. بغض النظر عن النسبة، فالأمر صحيح فلكل لغة مدير حزم رسمي خاص بها لإدارة تلك الحزم، وبايثون لديها pip. لكن بالطبع تتوفر بدائل، فلديك conda وهو مدير حزم وبيئات يستخدم بشكل واسع مع توزيعات Anaconda وMiniconda. أيضًا يوجد Poetry مدير حزم حديث يهدف إلى تبسيط عملية إدارة الحزم والمشاريع. بالإضافة إلى Hatch. يمكنك تجربة Poetry وتفقد هل أنت بحاجة إلى ميزاته أم لا، أبقي الأمور بسيطة دائمًا طالما لا تحتاج إلى تعقيدها.
×
×
  • أضف...