-
المساهمات
18818 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
445
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
عليك ضبط الوسيط missing_values في IterativeImputer ليكون -1.0 بحيث يعامل كل تكرار للرقم على أنه مفقود، كالتالي: from sklearn.experimental import enable_iterative_imputer from sklearn.impute import IterativeImputer imp = IterativeImputer( missing_values=-1.0, max_iter=10, random_state=0) X_imp = imp.fit_transform(X) لكن لو يوجد قيم حقيقية تُساوي -1 فعلاً في بعض الصفوف، فاستخدام -1 كرمز للفقد سيخلط بين المفقود والقيمة الحقيقية، لذا الأفضل دائمًا استخدام np.nan أو pd.NA كرمز وحيد للفقد. ولو العمود من نوع int فوجود -1 لا يسبب مشكلة، ولكن لو استبدلت إلى np.nan فيما بعد، فستضطر لتحويل الأعمدة إلى float أو Int64. عامًة كل المُحسنات أي الـ Imputers الموجودة في scikit-learn سواء SimpleImputer أو KNNImputer أو IterativeImputer لا تكتشف القيم المفقودة تلقائيًا، بل تبحث عن قيمة معينة تحددها أنت في الوسيط missing_values وافتراضيًا هي np.nan. ولو القيم المفقودة مُمثلة في البيانات بالعدد -1 فلن تعتبرها تلك الأدوات مفقودة إلا إن أخبرتها بذلك صراحة أو قمت بتحويلها إلى np.nan قبل تمرير البيانات إلى المُحْسن. للتوضيح، عند استدعاء fit أو fit_transform، يُنشئ المُحسن mask أي قناع يساوي True حيث تكون الخانة مفقودة و False حيث لا تكون مفقودة. ويتم بناء القناع كالتالي: لو missing_values=np.nan وهي القيمة الافتراضية، فيتم تطبيق np.isnan(X). وفي حال حددت عدد أو رمز آخر ولينك missing_values = -1، يتم استخدام المقارنة X == -1. والقيم المفقودة المكتوبة - ستُعامل كقيمة عددية عادية إن أبقيت الوسيط على الحالة الافتراضية np.nan، بالتالي قبل التدريب استبدال -1 بـ np.nan أو قم بتحديد ذلك للمُحسن مباشرًة كالتالي: from sklearn.impute import KNNImputer imputer = KNNImputer(missing_values=-1) X_imp = imputer.fit_transform(df.values)
- 8 اجابة
-
- 1
-
-
قمت بما هو مطلوب، هناك نقطة وحيدة لم تقم بها وهي استخدام scikit-learn بشكل مباشر لقياس التشابه من خلال cosine_similarity، عامًة لا تحتاج ذلك لأن FAISS يقوم بتلك المهمة بكفاءة.
-
طالما تريد أن تصبح مطور واجهة أمامية فيجب تعلم React، الأمر بحاجة إلى وقت وممارسة لكي تستوعب آلية عملها وكيفية التطوير من خلالها، تستطيع مشاهدة شرح على اليوتيوب للأساسيات مرة أخرى أو مراجعة مسار الأساسيات من الدورة.
-
ما تقصده هو التطوير مباشرًة من خلال HTML و جافاسكريبت، وذلك ممكن للمشاريع البسيطة، بينما في الواقع العملي أي في المشاريع الحقيقية لا يتم تطوير مشاريع إلا من خلال مكتبة React أو إطار عمل مثل Next.js. وللعلم التطوير من خلال React أسهل بمراحل، فأنت لم تقم بتجربة تطوير مشروع معقد من خلال HTML و Javascript فقط، ستجد صعوبة وبطيء في عملية التطوير. حاول الدراسة بشكل مختلف، أي استوعب آلية عمل React ولا تقم بالتفكير بها نفس الطريقة، بمعنى في DOM لو ضغط المستخدم الزر، سنقوم مثلاً بتيير لون العنصر مباشرة عن طريق جافاسكريبت. أما في React نقوم بذلك عن طريق تغيير قيمة الحالة state، أي لو تغيرت قيمة الحالة isRed إلى true فالعنصر سيُعاد رسمه بلون أحمر. كذلك استيعاب مفهوم المكونات والـ Props وتلك هي أهم مفاهيم React الأساسية، وفي حال استوعبتها يصبح الأمر أسهل بمراحل.
-
لا يُتاح لك حذف حسابك بشكل مباشر من طرفك، إنما من خلال التواصل مع فريق الدعم وتوضيح الأسباب أو المشاكل لنقدم المساعدة المناسبة، حيث أنّ الحساب يرتبط بالدورة التي اشتركت بها أي يرتبط بأمور مالية، لذا ستحدث مشكلة في حال تم حذفه بالخطأ. تستطيع ترك الحساب كما هو لا مشكلة.
-
الحل صحيح بناءًا على ما هو مطلوب منك لا مشكلة، وللتحسين ليس أكثر، فلم تقم بتطبيق نفس دالة preprocess على user_input قبل توليد التضمين له. وذلك كممارسة جيدة، فعلى الرغم من أنّ نماذج SentenceTransformer تتعامل جيدًا مع النصوص الخام، إلا أنه من لجيد تطبيق نفس خطوات المعالجة المسبقة التي طبقتها على بيانات التدريب وهي أوصاف الكتب على بيانات الاستعلام لضمان الاتساق، خاصة لو المعالجة المسبقة تزيل معلومات مهمة يعتمد عليها النموذج، عامًة التأثير ليس كبيرًا لأن all-MiniLM-L6-v2 قوي.
-
إذن هناك مشكلة في الأساسيات وهي اللغة البرمجية جافاسكريبت، أنت بحاجة إلى العودة إليها ودراستها من جديد، فما ذكرته يعني أنك تخطيت تلك المرحلة وتوجهت مباشرًة لتعلم React والتقنيات الأخرى القائمة على جافاسكريبت، ولن تتمكن من الوصول بعيدًا بدون أساس قوي في اللغة البرمجية نفسها. ويجب تنفيذ مشاريع متدرجة الصعوبة من خلال جافاسكريبت بعد مراجعة الأساسيات، وستجد على اليوتيوب الكثير من المشاريع، ابحث عن مشاريع جافاسكريبت للمبتدئين. وعند التطبيق لا تقع في محاولة كتابة التطبيق دفعة واحدة حيث سيؤدي ذلك إلى شلل في التفكير لديك، يجب تقسيم المشروع إلى أجزاء صغيرة ثم العمل على حلها. ويجب التفكير والتخطيط أولاً قبل كتابة الكود فتلك هي الخطوة الأخيرة، قم بتنفيذ Pseudocode للمشروع ثم تحويله إلى كود.
-
صلاحية الوصول للملف غير صحيحة أرجو عند مشاركة الرابط إختيار anyone with the link
-
في البداية ليس المطلوب منك سوى تنفيذ المنطق بشكل صحيح، بغض النظر عن جودة الكود أو إتباع الممارسات الصحيحة، أي أهم هدف هو أن تتعلم ترجمة وصف المشكلة إلى خطوات منطقية واضحة ثم إلى كود يعمل بشكل سليم. واسمح لنفسك أن تكتب كود أطول أو أبطأ ما دمت تتعلم، فالتجربة والخطأ أفضل طريقة لترسيخ ما تعلمته، واحرص في كل مسألة على أن تسأل نفسك هل غطيت كل الحالات المطلوبة؟ قبل أن تقلق بشأن السرعة. بعد الوصول لمستوى متوسط ابدء في تعلم كيف يتم كتابة كود جيد وما هي أفضل الممارسات وكيف يتم تحسين الأداء، ولا تنتظر حتى تتقن كل شيء، فمن الجيد بعد كل حل أن تحسب تعقيد الزمن O() والذاكرة ولو تقديريًا، ويكفي أن تبدأ بالتمييز بين خوارزمية خطية O(n) وخوارزمية تربيعية O(n²) والخوارزميات التي تعتمد على log n.
- 3 اجابة
-
- 1
-
-
أرجو توفير صورة للمشكلة، وإليك تفصيل لكيفية التعديل:
-
الدورة ليس لها علاقة بالتوثيق، فهي متاحة لك مدى الحياة، وتستطيع تعديل الاسم.
- 4 اجابة
-
- 1
-
-
سيتوجب عليك ذلك، أرجو التوجه إلى الرابط التالي: https://accounts.hsoub.com/settings/identity وستجد تفصيل في الفيديو التالي لكيفية توثيق الهوية الخاصة بك، حيث ستملئ البيانات باسمك وتاريخ الميلاد وبعدها ترفع صورة الهوية أو شهادة الميلاد.
-
لا يتوفر ذلك حاليًا، في الوقت الحالي تستطيع الإعتماد على موسوعة حسوب كمرجع للغات والمكتبات المختلفة: https://wiki.hsoub.com/ كذلك يوجد مقالات وشروحات لمختلف لغات مجال البرمجة: https://academy.hsoub.com/programming/ وفي حال أردت ملخص للغة أو إطار معين أو مكتبة تستطيع البحث عن cheat sheet ثم اسم اللغة مثلاُ وليكن js إذا ستبحث عن cheat sheet for js وستجد ملخصات مثل التالي: https://htmlcheatsheet.com/js/ http://cheatsheets.shecodes.io/javascript
- 3 اجابة
-
- 1
-
-
ما تريده ليس خفض الشفافية، بل ما في الصورة يتم عبر تغيير خلفية المحرر عبر إضافة Background والتي تعمل على تغيير الخلفية وبالتبعية تقوم بخفض الشفافية لكي تظهر الخلفية، كالتالي: وها هو ربط الإضافة: https://marketplace.visualstudio.com/items?itemName=Katsute.code-background بعد التثبيت ستجد أسفل اليمين أيقونة باسم Background قد ظهرت اضغط عليها ثم اختر window ثم اختر file ثم اختر الصورة التي تريد وضعها من حاسوبك، وسيظهر لك نافذة منبثقة اضغط منها على زر install and reload وستجد أنّ الخلفية قد ظهرت.
-
لم توضح ما الذي قمت بإنهائه في الدورة، هل قمت بإنهاء كامل الدورة؟ أم PHP ووردبريس فقط؟ عامًة المهارات المطلوبة في الوظيفة، تتطلب دراسة دورة تطوير واجهات المستخدم أو على الأقل دراسة المسار الأول منها في حال لم تكن مشترك بها، فهو مجاني لك، ثم دراسة المسار الأول من دورة جافاسكريبت للتعمق باللغة أكثر. وفي حال لم تكن مشترك بدورة تطوير واجهات المستخدم، ستحتاج إلى التعمق في تطوير واجهات المستخدم من خلال HTML, CSS, JS وبوتستراب، ويوجد على اليوتيوب مصادر جيدة. بالنسبة لدورة PHP ستحتاج إلى دراسة المسارات التالية بالدورة: أساسيات لغة PHP تطوير قوالب ووردبريس تطوير قالب ووردبريس أخباري تطوير متجر إلكتروني في ووردبريس عبر ووكومرس بعد ذلك ستحتاج إلى التعمق قليلاً في لغة SQL وستجد على اليوتيوب مصادر جيدة كذلك، وسبب عدم التعمق بها بالدورة هو الإعتماد على لارافل لإدارة قواعد البيانات. بعد ذلك ستحتاج إلى تعلم كيفية نشر المشاريع على الاستضافات ورفع أكثر من مشروع لتعتاد على الأمر.
- 4 اجابة
-
- 1
-
-
في react لا نقوم بكتابة مسار الصورة كما في HTML فلا تنسى أننا نكتب كود بداخل ملف بصيغة JSX، وليس html. بالتالي يجب استيراد الصورة أولاً بالملف App.jsx: import bg from './bg.jpg' ثم استخدامها كالتالي: <img src={bg} alt="" />
-
كلاس في scikit-learn لتطبيق تحويلات مختلفة على أعمدة مختلفة من البيانات في نفس الوقت، أي كل التحويلات في مكان واحد، وستتجنب مشكلة تسرب البيانات. كالتالي: from sklearn.compose import ColumnTransformer numeric_features = df.select_dtypes(include=['number']).columns.tolist() text_features = df.select_dtypes(include=['object']).columns.tolist() preprocessor = ColumnTransformer( transformers=[ ('num', KNNImputer(n_neighbors=5), numeric_features), ('text', 'passthrough', text_features) # الأعمدة النصية تمر كما هي ]) df_transformed = preprocessor.fit_transform(df) feature_names = numeric_features + text_features df_final = pd.DataFrame(df_transformed, columns=feature_names)
- 8 اجابة
-
- 1
-
-
الطريقة الأفضل هي استخدام ColumnTransformer من مكتبة sklearn. لكن لا مشكلة فيما ذكرته الطريقة سليمة، ستقوم بفصل مجموعة البيانات إلى قسمين جزء يحتوي على الأعمدة الرقمية فقط التي بها قيم مفقودة وتريد معالجتها، وجزء يحتوي على الأعمدة النصية التي ليس بها قيم مفقودة ولن تحتاج إلى imputation أي معالجة. ثم معالجة القيم المفقودة من خلال تطبيق أحد النماذج IterativeImputer, KNNImputer, SimpleImputer على الجزء الرقمي فقط لملء القيم المفقودة. حيث SimpleImputer بسيط وسريع، جيد للبداية من خلال استراتيجيات mean, median, most_frequent, constant، وKNNImputer يعتمد على القيم المجاورة، وهو أدق ولكن أبطأ، بينما IterativeImputer يستخدم نماذج أخرى لتقدير القيم المفقودة، وهو الأقوى والأكثر استهلاكًا للوقت. وبعد معالجة القيم المفقودة في الأعمدة الرقمية، تقوم بإعادة دمجها مع الأعمدة النصية الأصلية لتحصل على مجموعة بيانات كاملة وجاهزة للخطوات التالية، كتحويل الأعمدة النصية إلى رقمية بواسطة One-Hot Encoding أو Label Encoding في حال ستقوم ببناء نموذج تعلم آلة. وعند تحويل المصفوفة الناتجة من الـ imputer إلى DataFrame مرة أخرى، تأكد من استخدام index=df.index أو index=df_numerical.index للحفاظ على ترتيب الصفوف الصحيح عند الدمج لاحقًا.
- 8 اجابة
-
- 1
-
-
لم يتم التوضيح هل تريدين مشروع مفتوح المصدر جاهز مثلاً للإطلاع عليه؟ أم تريدين فكرة مشروع؟ في حال الأول، فلا يوجد مشروع جاهز مفتوح المصدر لذلك، ستحتاجين إلى تنفيذه بنفسك، وكنقطة إنطلاق ألقي نظرة على بيئة التطوير ARCore لأندرويد أو ARKit لـ iOS. وبأبسط طريقة كبداية ستحتاجين إلى OpenCV لمعالجة الفيديو بجانب ArUco markers لتحديد المواقع، التتبع، أو معايرة الكاميرا. وبالطبع يجب تعلم أساسيات Computer Vision ودراسة Camera Calibration، وبعد ذلك قومي بتجربة تقنية SLAM من خلال مكتبة OpenCV، أو من خلال وحدة VisualSLAM من مكتبة pyslam، والأمر بحاجة إلى بحث ودراسة.
-
هل المقصود عند الإشتراك في الدورة؟ تستطيع إذن وضع سؤال أسفل الدرس في حال السؤال متعلق به وسيتم مساعدتك في الحال وتوضيح الأمر لك. أما لو تقصد سؤال عام خارج الدورة، فتستطيع وضعه هنا في قسم أسئلة البرمجة في التصنيف المناسب له، وتفصيل ما تريده وسيتم مساعدتك بالطبع، وبإمكانك إرفاق ملفات المشروع.
- 5 اجابة
-
- 1
-
-
الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، لكن للتوضيح المطلوب منك هو أن تقومي بكتابة كود بايثون لتنفيذ مجموعة من العمليات على هياكل البيانات من نوع قائمة List و مجموعة Set. وبخصوص القوائم ستحتاجين إلى إنشاء قائمة باسم fruits تحتوي على العناصر "Apple", "Banana", "Cherry", "Apple"، ثم طباعة اطبع القائمة وطولها أيضًا. ثم كتابة كود للوصول إلى العنصر الثاني في قائمة fruits وطباعته، وإلى العنصر الأخير في القائمة باستخدام الفهرسة السالبة وطباعة العنصر، ثم الوصول إلى أول عنصرين في القائمة باستخدام مفهوم الـ slicing واطبعيهما. ثم تعديل القوائم بتغيير قيمة العنصر الثاني في قائمة fruits ليصبح "Blueberry"، وأضيفي العنصر "Orange" إلى نهاية القائمة باستخدام دالة append()، ثم أدرجي العنصر "Mango" في بداية القائمة عند الفهرس 0 باستخدام دالة insert(). ثم احذفي العنصر "Cherry" من القائمة باستخدام دالة remove()، ثم احذفي العنصر الأخير من القائمة باستخدام دالة pop(). بعد ذلك استخدمي دوال القوائم، أولاً دالة count() لمعرفة عدد مرات ظهور العنصر "Apple" في قائمة fruits، ثم رتبي عناصر قائمة fruits أبجديًا باستخدام دالة sort()، ثم اعكسي ترتيب عناصر قائمة fruits باستخدام دالة reverse(). ثم تطبيق مفهوم List Comprehension لإنشاء قائمة جديدة باسم long_fruits تحتوي فقط على الفواكه من قائمة fruits التي يزيد عدد أحرف اسمها عن 5 أحرف. والجزء الثاني في التمرين هو إنشاء المجموعات حيث عليكِ إنشاء مجموعة باسم colors تحتوي على العناصر "Red", "Blue", "Green", "Red"، واطبعي المجموعة وطولها. ثم تحققي هل العنصر "Blue" موجود ضمن مجموعة colors واطبعي نتيجة التحقق True أو False، ثم استخدمي حلقة تكرار للمرور على جميع عناصر مجموعة colors وطباعة كل عنصر. بعد ذلك أضيفي العنصر "Yellow" إلى مجموعة colors باستخدام دالة add()، واحذف العنصر "Green" من المجموعة باستخدام دالة remove(). وحاول حذف العنصر "Purple"(وهو غير موجود في المجموعة باستخدام دالة discard()، ثم اشرحي الفرق بين دالة remove() ودالة discard() عند محاولة حذف عنصر غير موجود. ثم التطبيق على دوال المجموعات، من خلال إنشاء مجموعة أخرى باسم new_colors تحتوي على العناصر "Blue", "Purple", "Orange". واستخدم دالة union() لدمج عناصر المجموعتين colors و new_colors واطبعي المجموعة الناتجة، ثم دالة difference() لإيجاد العناصر الموجودة في مجموعة colors وليست موجودة في new_colors، واطبعي المجموعة الناتجة. ثم دالة symmetric_difference() لإيجاد العناصر الموجودة في إحدى المجموعتين ولكن ليس في كلتيهما، واطبعي المجموعة الناتجة. ثم دالة intersection() لإيجاد العناصر المشتركة بين المجموعتين colors و new_colors، واطبعي المجموعة الناتجة. المجموعات set في بايثون
-
الدورة ستوفر لك كل ما تحتاجه في البداية، لكن دورة جافاسكريبت دورة ضخمة، وبها الكثير من التقنيات المتعلقة بجافاسكريبت، فمنها ما هو خاص بـ Front-End ومنها ما هو متعلق بـ Back-End ومنها ما هو خاص بتطوير تطبيقات الهاتف، وبها أيضًا شرح لتقنيات تطوير برامج سطح المكتب. فتعلم كل ما بالدورة ليس عملي وذلك ليس المطلوب في سوق العمل، والدورة متاحة لك مدى الحياة تستطيع العودة إليها ودراسة ما تبقى منها بعد اكتساب خبرة في تخصص معين فلا مشكلة في ذلك. لذا يجب تحديد التخصص الذي تنوي دراسته قبل دراسة الدورة، وفي حال لم تقرر بعد، إذن أنصحك بتخصص Full-Stack وبه ستتعلم كل من الواجهة الأمامية Front-End والخلفية Back-End. أي تحتاج إلى دراسة المسارات التالية: أساسيات لغة JavaScript أساسيات React.js أساسيات Node.js تطبيق دردشة يشبه WhatsApp إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js أساسيات TypeScript تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي تطبيق حجز مناسبات باستخدام GraphQL تطبيقات الويب التقدمية PWA
- 6 اجابة
-
- 1
-
-
فكرة عمل مثل تلك الأدوات هي التعلم من الأنماط عن طريق جميع البيانات من مصادر متعددة سواء سجلات النظام، حركة الشبكة أو الملفات، ثم تبدأ بتحليلها لتتعلم السلوك الطبيعي للنظام لكي تتمكن من تحديد أي سلوك يخرج عن النمط المعتاد، وفي مرحلة التحليل ستجد اعتماد بنسبة 80 إلى 90% على خوارزميات تعلم الآلة Isolation Forest, One-Class SVM, Autoencoders. وكذلك التحليل السلوكي من خلال التحليل تتبع سلوك البرامج والعمليات، فهم تسلسل الأحداث والأوامر، ثم إنشاء بصمات للسلوك الخبيث، ومعالجة اللغة الطبيعية NLP بتحليل رسائل البريد الإلكتروني للكشف عن التصيد، فهم محتوى الملفات النصية والوثائق وتحليل أكواد البرمجيات الخبيثة. ثم الإعتماد على الشبكات العصبية Random Forest, Deep Neural Networks بنسبة 70 إلى 85% في تحديد نوع وخطورة التهديد أي تصنيف التهديد، وكذلك التنبؤ بالهجمات المستقبلية عن طريق خوارزميات LSTM, Time Series Analysis. والأفضل في ذلك المجال هي أداة Wazuh لكونها شاملة SIEM + XDR + Compliance وسهلة الاستخدام ووظيفتها الكشف والتنبيه، وبجانبها يوجد أداة Suricata لتحليل حركة الشبكة وهي متوافقة مع Wazuh. ويوجد TheHive و Cortex ويستخدمان معًا لتحليل البرمجيات الخبيثة وأتمتة الاستجابة، والتحليل العميق، لكن كلاهما أدوات متقدمة وليست مناسبة للاستخدام البسيط.