-
المساهمات
14541 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
385
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
تقنية MICE تعمل بشكل أفضل مع البيانات الرقمية، وذلك لاستخدام العلاقات الإحصائية بين المتغيرات لملء القيم المفقودة، أما البيانات الفئوية Categorical فتستطيع التعامل معها ولكنها تتطلب بعض المعالجة المسبقة، مثل تحويلها إلى أرقام باستخدام الترميز Encoding. وسيتم استبدال القيم الفارغة Null بالقيم الجديدة، لأنّ MICE تقوم بملء الفراغات، فالهدف الرئيسي لها هو ملء القيم المفقودة في مجموعة البيانات الأصلية، ولا تقوم بإنشاء نسخ جديدة كاملة من البيانات، بل تحديث القيم المفقودة في البيانات الأصلية حسب التقديرات التي تم الحصول عليها من خلال العملية التكرارية.
- 5 اجابة
-
- 1
-
-
نعتذر لك محمد، أرجو إعادة إرسال ما تريده بالتفصيل لمركز المساعدة مع ذكر أنك أرسلت من قبل وسيتم مساعدتك، مع الإنتظار قليلاً لحين الاستجابة على رسالتك فيوجد ضغط حاليًا.
-
لتجنب أخطاء LabelEncoder، حيث LabelEncoder من مكتبة scikit-learn لا يدعم التعامل مع القيم الفارغة (NaN) بشكل مباشر، فهو مصمم ليعمل مع فئات محددة مثل ye','no، لكن NaN ليست فئة، بل هي قيمة مفقودة. فكرة الحل استبدال NaN بقيمة مؤقتة مثل 'missing' قبل التشفير، وتُعامل كفئة Category جديدة أثناء التشفير، وبعد التشفير، نستبدل القيمة المؤقتة بـ NaN مرة أخرى.
- 7 اجابة
-
- 1
-
-
تقصد تحويل البيانات باستخدام LabelEncoder مع الحفاظ على قيم NaN دون تغيير، عليك إذن استبدال القيم NaN بقيمة مؤقتة قبل التشفير لتجنب أخطاء LabelEncoder وتطبيقه على كل عمود، ثم إعادة استبدال القيمة المؤقتة بـ NaN بعد التشفير. import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder data = pd.DataFrame({ 'A': ['yes', 'yes', np.nan, 'no', 'no'], 'B': [np.nan, 'no', 'no', 'no', 'no'], 'C': ['no', 'yes', 'yes', np.nan, 'yes'] }) data_encoded = data.copy() for col in data_encoded.columns: mask = data_encoded[col].isna() temp_data = data_encoded[col].fillna('missing') le = LabelEncoder() encoded_data = le.fit_transform(temp_data) encoded_data = encoded_data.astype(float) encoded_data[mask] = np.nan data_encoded[col] = encoded_data print(data_encoded) وستحصل على: A B C 0 2.0 NaN 1.0 1 2.0 1.0 2.0 2 NaN 1.0 2.0 3 1.0 1.0 NaN 4 1.0 1.0 2.0 لاحظ لو العمود لا يحتوي على NaN، سيتم ترميزه بشكل طبيعي، أيضًا القيم المشفرة ستكون أرقامًا صحيحة (مثل 0, 1, ...)، بينما تظل NaN كما هي.
- 7 اجابة
-
- 1
-
-
ستحتاج إلى إضافة Pylance لتوفير ميزات متقدمة فيما يخص Python IntelliSense في vscode، مع إضافة التالي إلى الإعدادات، اضغط على F1 ثم ابحث عن settings json وأضف التالي لنهاية كائن الإعدادات: "python.analysis.autoImportCompletions": true, "python.analysis.indexing": true أيضًا تأكد من أنّ pylance هو سيرفر بايثون لديك بالضغط على CTRL + . في vscode ثم ابحث عن python language server واختر pylance.
-
ستحتاج إلى إضافة موقعك إلى Google Search Console ثم طلب عمل أرشفة للموقع index، لكن قبل ذلك ستحتاج إلى تجهيز موقعك ليتوافق مع معايير الـ SEO وخاصًة الـ Technical SEO. وللظهور على كلمات معينة الأمر بحاجة إلى إنشاء محتوى قوي وأيضًا إنشاء روابط خلفية backlinks في حال كان هناك تنافس قوي على تلك الكلمات. والـ SEO بحاجة إلى نفس طويل، فالأمر لن يحدث بين ليلة وضحاها، هناك آلاف الموقع تتنافس على الظهور، لذا يجب اكتساب ثقة جوجل واستحقاق التواجد في المراكز العشر الأولى.
- 1 جواب
-
- 1
-
-
للتوضيح، التقنية بإختصار شديد، طريقة إحصائية ذكية لـ ملء الفراغات (القيم المفقودة) في مجموعة البيانات، عن طريق: تخمين القيم المفقودة بشكل متكرر باستخدام علاقات المتغيرات الأخرى. تكرار العملية عدة مرات لإنشاء عدة نسخ من البيانات المكتملة (لتقليل الخطأ). دمج النتائج من جميع النسخ للحصول على تقدير أدق للقيم المفقودة. وتتوفر في مكتبات مختلفة أولها مكتبة statsmodels تحتوي على دعم مُدمج لـ MICE عبر IterativeImputer. أو sklearn في إصدارات حديثة (≥0.24)، متوفر استخدام IterativeImputer من sklearn.impute. أو fancyimpute وهي مكتبة خارجية تُوَدِّع خوارزميات متقدمة للتعامل مع البيانات المفقودة، بما في ذلك MICE. مثلاً من خلال IterativeImputer من sklearn: import pandas as pd import numpy as np from sklearn.experimental import enable_iterative_imputer from sklearn.impute import IterativeImputer data = pd.DataFrame({ 'A': [1, 2, np.nan, 4, 5], 'B': [np.nan, 2, 3, 4, 5], 'C': [1, 2, 3, np.nan, 5] }) imputer = IterativeImputer( max_iter=10, random_state=42, initial_strategy='mean' ) imputed_data = imputer.fit_transform(data) imputed_df = pd.DataFrame(imputed_data, columns=data.columns) print(imputed_df) أو من خلال fancyimpute التي توفر خوارزميات متقدمة مثل Matrix Factorization وKNN وMICE، لكنها أبطأ مع البيانات الكبيرة. from fancyimpute import IterativeImputer imputer = IterativeImputer(n_imputations=5, max_iter=10) imputed_data = imputer.fit_transform(data) imputed_df = pd.DataFrame(imputed_data, columns=data.columns) print(imputed_df) بمعنى sklearn أسرع لكن بها دعم محدود للنماذج وهي أفضل للمجموعات الصغيرة، بينما fancyimpute تدعم نماذج معقدة لكن أبطأ بسبب اعتمادها على TensorFlow وليس دائمًا بسبب ذلك، بل بسبب التطبيقات الداخلية، وتتطلب موارد حاسوبية أعلى. عامًة sklearn مُفضَّلة في معظم الحالات من حيث السرعة والكفاءة بالنسبة للبيانات الصغيرة أو متوسطة الحجم أي أقل من ١٠٠ ألف عينة. أما fancyimpute لو أردت تجربة خوارزميات غير موجودة في sklearn (مثل MatrixFactorization)، أو بحاجة إلى خيارات متقدمة للبيانات المعقدة مثل الصور أو النصوص.
- 5 اجابة
-
- 1
-
-
العامل Not في البرمجة نستخدمه لعكس المنطق المنطقي Boolean Logic أي القيم البوليانية لتحويل True إلى False والعكس. If Not Integer.TryParse(txtInput.Text, userInput) Then ' ... إظهار رسالة خطأ End If الدالة Integer.TryParse تُعيد القيمة True وإن نجح التحويل إلى رقم، وFalse إن فشل، وباستخدام Not، نعكس النتيجة حيث الشرط يصبح إن فشل التحويل إلى رقم. وذلك للتحقق من الحالات السلبية مثل الأخطاء بشكل مباشر، بدلًا من استخدام Else، بالتالي يقلل من التعقيد عند التعامل مع شروط متعددة وتسهيل قراءة الكود.
-
ذلك هو مفهوم برمجي لتصميم تصميم خوارزميات بمعنى Programming Concept/Algorithmic Paradigm وليس خوارزمية محددة بذاتها فمن خلاله تستطيع حل مسائل معقدة عن طريق تقسيمها إلى مسائل فرعية أصغر، وحل كل مسألة فرعية مرة واحدة فقط (بتخزين النتائج) بمعنى المسائل الفرعية تتكرر أثناء الحل، لذا نحفظ نتائجها في ذاكرة (مصفوفة، جدول) بدل إعادة حسابها، الأمر الذي يقلل الوقت الحسابي، وهناك طريقتان لتطبيق ذلك المفهوم الأولى Memoization (Top-Down)، عن طريق حل المشكلة بشكل تعاودي (Recursion) + حفظ النتائج في Cache، كحساب Fibonacci(n) مع تخزين القيم memo = {} def fib(n): if n <= 1: return n if n not in memo: memo[n] = fib(n-1) + fib(n-2) return memo[n] الثانية Tabulation (Bottom-Up) عن طريق حل المسائل الفرعية من الأصغر إلى الأكبر باستخدام Iteration + جدول، مثل ملء جدول Fibonacci[0..n] بشكل تسلسلي. def fib(n): if n <= 1: return n table = [0] * (n+1) table[0], table[1] = 0, 1 for i in range(2, n+1): table[i] = table[i-1] + table[i-2] return table[n]
- 5 اجابة
-
- 1
-
-
ما تقصده هو ميزة مثل IntelliSense الموجودة في vscode للإكمال التلقائي للكود autocomplete، ستحتاج إلى تثبيت مكتبة jupyter-contrib-nbextensions: pip install jupyter-contrib-nbextensions وسيظهر لك تبويب باسم nbextensions في jupyter اضغط عليه ثم ابحث عن Hinterland وقم بتفعيل تلك الميزة:
- 4 اجابة
-
- 1
-
-
ما تقصده هو Data mining وذلك ليس متاح في الدورة بشكل مباشر لكن ما ستتعلمه سيوفر لك أغلب ما تحتاجه للعلم ذلك، أيضًا سيتم شرح web scraping أي كشط الويب أو الزحف على مواقع الويب واستخراج البيانات. والتنقيب يعني اكتشاف أنماط مخفية أو علاقات غير واضحة في مجموعات بيانات كبيرة Big Data باستخدام خوارزميات متقدمة، ويُركّز على التنبؤ بالمستقبل، ويتم من خلال خوارزميات تعلم الآلة والذكاء الاصطناعي وأدوات متخصصة مثل Weka, RapidMiner، أو مكتبات مثل Scikit-Learn في Python. أما Data Analysis تحليل البيانات الغرض منه فهم البيانات الحالية واستخلاص رؤى لاتخاذ قرارات مدعومة بالبيانات. يركز على الإجابة على أسئلة محددة أو اختبار فرضيات مُسبقة، كتحليل مبيعات شركة لمعرفة أي المنتجات الأكثر رواجًا أي يُجيب على أسئلة محددة (ماضية/حالية)، وذلك من خلال أدوات تصور البيانات عبر الرسوم البيانية مثل Excel, Tableau, Power BI ومكتبات بايثون مثل Pandas, Matplotlib. والدورة تغطي المواضيع الأساسية: أساسيات بايثون وهي أساسية للعمل في مجال الذكاء الاصطناعي. جوانب مهمة في التعامل مع البيانات، مثل قواعد البيانات، SQL، APIs، واستخراج البيانات من الويب. أدوات تحليل البيانات مثل Pandas، Matplotlib، و Seaborn، بالإضافة إلى تحليل بيانات مختلفة مثل بيانات الطلاب، بيانات المتاجر الإلكترونية، و بيانات الحملات التسويقية. أساسيات تعلم الآلة، بما في ذلك الانحدار، التصنيف، التجميع، والترابط. أساسيات الشبكات العصبية، الشبكات العصبية التلافيفية، والشبكات العصبية التكرارية. والمواضيع المتقدمة: نماذج اللغة الكبيرة (LLMs) من خلال استخدام نماذج LLMs مثل GPT-3.5 Turbo، BERT، و Llama 2، بالإضافة إلى تخصيصها وصقلها. هندسة الموجهات (Prompt Engineering) وهي تقنية المهمة في التعامل مع نماذج LLMs. نماذج الرؤية الحاسوبية باستخدام مكتبة OpenCV، التعرف على نماذج الرؤية الحاسوبية، و استخدام نموذج YOLO. التعرف على الصور باستخدام الشبكات العصبية. شرح آلية نقل التعلم Transfer Learning وتطبيقاته في تصنيف الصور، التعرف على المشاعر، و تمثيل النصوص. من خلال تغطية ما سبق في الدورة ستتمكن من تعلم أساسيات مجال الذكاء الاصطناعي بشكل عميق. بعدها تستطيع تعلم تنقيب البيانات المتخصص والتوسع في تعلم خوارزميات أكثر تقدمًا مثل Apriori (لقواعد الارتباط)، وتقنيات تنظيف البيانات المعقدة، وأدوات مثل Weka أو RapidMiner المخصصة للتنقيب.
- 2 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
رابط المشروع غير صحيح فالمستودع غير موجود، هل هو Private؟ عامًة تأكد من تسجيل الـ ModelAdmin المخصص بشكل صحيح from django.contrib import admin from django.contrib.auth.models import User from .admin import CustomUserAdmin admin.site.unregister(User) admin.site.register(User, CustomUserAdmin) ومن وجود القالب custom_email_view.html في المسار الصحيح في templates/ admin/ custom_email_view.html
- 6 اجابة
-
- 1
-
-
وكيف قادم بالدخول على حسابك؟ هل قمت بزيارة رابط خبيث وقمت بكتابة بياناتك أي كلمة المرور الخاصة بك؟ أم قمت بتحميل ملف خبيث على الحاسوب؟ حاول إعادة تعيين كلمة المرور لحساب الأول من خلال التوجه إلى التالي من هاتفك: https://iforgot.apple.com/ وفي حال لم تستطيع إعادة تعيين كلمة المرور من خلال توفير المعلومات اللازمة، سيظهر لك خيار لاستعادة حسابك account recovery اتبع الخطوات وسيصل لك بريد في غضون 3 أيام تقريبًا يخبرك متى تستطيع استعادة حسابك مجددًا وسيصلك بريد آخر بعد عدّة أيام يخبرك بالتعليمات التي يجب عليك القيام بها.
-
يوجد مكتبة PyQT لبناء الواجهة من خلال بايثون وليس HTML, CSS، أو يوجد إطار CEF Python لبايثون ويعتمد على HTML أي مثل Electrone.js
- 5 اجابة
-
- 1
-
-
لا مشكلة في ذلك، الدورات التي تشترك بها متاحة لك مدى الحياة، وأيضًا التحديثات الخاصة بها ستحصل عليها مدى الحياة، وتستطيع التقدم للإمتحان متى أردت. بخصوص الدراسة، فهي دروس مسجلة وتطبيقات عملية على مشاريع كاملة، وتستطيع السؤال متى أردت وسيتم توضيح ما تريد بالتفصيل من قبل فريق العمل أسفل الدروس، أي تستطيع التفاعل في التعليقات.
- 5 اجابة
-
- 1
-
-
من الأفضل عند إدخال سؤال يحفظ تلقائيًا بعد 3 ثوانٍ من التوقف عن الكتابة ثم إشعار فوري بالنجاح/الفشل، وذلك لتجنب فقدان البيانات في حال أغلق المستخدم الصفحة أو حدث خطأ مفاجئ وتقليل الضغط على الخادم عن طريق تجنب إرسال طلبات متكررة، وذلك يعرف بتقنية Debounce. وعند الانتهاء أي زر "إنهاء الاختبار" يتحقق من اكتمال جميع الحقول ويُرسل البيانات النهائية لمنع منع إرسال نماذج غير مكتملة، وبذلك توازن بين الأمان والكفاءة وتجربة المستخدم السلسة.
- 3 اجابة
-
- 1
-
-
في حال كنت قد تعلمت جافاسكريبت بالفعل فمن الأسهل لك استخدام Electron.js، وهو الأكثر استخدامًا لبناء تطبيقات سطح مكتب باستخدام تقنيات الويب (HTML, CSS, JavaScript). أما الأفضل هو لغة C# مع إطار عمل .NET + WebView2 لنظام ويندوز، أو NET MAUI لو أردت دعم Windows, macOS, iOS, Android.
- 5 اجابة
-
- 1
-
-
لا مشكلة في استخدامه في حال الفئات مرتبة Ordinal أو تستخدم خوارزميات غير حساسة للترميز الرقمي كأشجار القرار. وتجنبه في حال الفئات غير مرتبة Nominal أو تستخدم خوارزميات حساسة للمسافات مثل KNN والانحدار.
- 5 اجابة
-
- 1
-
-
لا مشكلة، لكن فعاليتها تعتمد آلية التطبيق، أي تُستخدم EWA في السلاسل الزمنية، حيث يتم تعويض القيمة المفقودة حسب متوسط مرجح للقيم السابقة، مع منح وزن أكبر للبيانات الأحدث. أيضًا حسب نوع البيانات، فالبيانات الرقمية والسلاسل الزمنية EWA فعالة عليها، خاصة لو هناك ارتباط زمني بين القيم (مثل أسعار الأسهم، درجات الحرارة). لكن غير مناسبة للقيم المفقودة الكثيرة لو نسبة القيم المفقودة عالية (> 20%). وليست مناسبة لجميع البيانات، مثل البيانات غير زمنية أو فئوية/نصيةأو تحتوي على قيم مفقودة كثيرة أو غير عشوائية (MNAR)، فهنا لديك نماذج الانحدار أو KNN لاستكمال القيم بناءًا على علاقات مع متغيرات أخرى، وخوارزميات متقدمة مثل MICE (Multiple Imputation by Chained Equations) لمعالجة قيم مفقودة معقدة.
- 5 اجابة
-
- 1
-
-
أسهل طريقة هي استخدام استضافة Netlify أو Vercel أو Cloudflare Pages. كل ما أنت بحاجة إليه هو تنفيذ أمر npm run build وستحصل على مجلد dist أو app وبه الكود النهائي للمشروع ليتم نشره على الاستضافة، وستقوم برفع ذلك المجلد إلى مستودع منفصل أو فرع منفصل داخل المستودع الرئيسي لمشروعك على GitHub. ثم التوجه لأحد تلك الاستضافة واختيار رفع المشروع من خلال GitHub وسيتم النشر بشكل سهل، وفي حال قمت بتحديث المشروع على GitHub أي الذي به مجلد dist سيتم إعادة النشر على الاستضافة تلقائيًا دونّ تدخل منك. أما لو تريد GitHub pages فأرجو قراءة التالي:
-
قمت بتجربة الكود لديك ولا يوجد مشكلة، أرجو تجربة التالي: import matplotlib.pyplot as plt import seaborn as sns import pandas as pd import numpy as np # توليد بيانات مؤقتة np.random.seed(42) data_train = pd.DataFrame({ 'age_at_hct': np.random.normal(50, 15, 500), 'gvhd_proph': np.random.choice([0, 1], 500), 'tbi_status': np.random.choice(['No', 'Yes'], 500) }) plt.figure(figsize=(12, 11)) plt.subplot(2, 2, 1) sns.histplot(data=data_train, x='age_at_hct', hue='gvhd_proph', multiple='stack', palette='Blues') plt.title("Stacked Histogram of Age at HCT and GVHD Prophylaxis") plt.xlabel("Age at HCT") plt.ylabel("Count") plt.subplot(2,2,2) sns.histplot(data=data_train, x='age_at_hct', hue='tbi_status', multiple='stack', palette='Blues') plt.title("Stacked Histogram of Age at HCT and Tbi-Status") plt.xlabel("Age at HCT") plt.ylabel("Count") plt.tight_layout() plt.show()
- 6 اجابة
-
- 1
-