-
المساهمات
14490 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
384
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
الدورة متاحة لك مدى الحياة والتحديثات الخاصة بها كذلك، والإختبارات تستطيع التقدم لها متى تجهزت لذلك لا مشكلة. والدورة مقسمة إلى مسارات بشكل ممنهج وكل مسار به مجموعة من الأقسام وكل قسم به دروس، أي يجب دراستها بالترتيب، وتنفيذ التطبيقات العملية التي بها. إن كان هناك شيء غير واضح لك أرجو الاستفسار عنه.
-
عليك استخدام نوع البيانات الصالحة للقيم المفقودة في Pandas (Int32)، بمعنى استخدام Int32 بدلاً من float من خلال dtype='Int32' (بـ I كبيرة) لإنشاء عمود صحيح مع دعم القيم المفقودة. واستبدال np.nan بـ pd.NA من pandas لتمثيل القيم المفقودة في الأعمدة من النوع الصحيح. وإزالة التحويل إلى float، فلم يعد هناك حاجة للتحويل إلى float لأن Int32 يدعم القيم المفقودة مباشرةً. data_encoded = data_train.copy() for col in data_encoded.select_dtypes(include=['object']).columns: mask = data_encoded[col].isna() temp_data = data_encoded[col].fillna('missing') le = LabelEncoder() encoded_data = le.fit_transform(temp_data) encoded_series = pd.Series(encoded_data, dtype='Int32') encoded_series[mask] = pd.NA data_encoded[col] = encoded_series ويجب أن يكون تأكد إصدار Pandas لديك هو 0.24 أو أحدث لدعم الأنواع الصحيحة القابلة للفقدان، وفي حال تريد التعامل مع القيم المفقودة كفئة منفصلة (بدلاً من حفظها كـ NaN)، تستطيع حذف الخطوة التي تستخدم mask و pd.NA.
- 3 اجابة
-
- 1
-
-
الأمر بحاجة إلى توضيح عملي، ابحث على اليوتيوب عن "حل مشكلة certificate chain not trusted problem in SQL Server"
- 5 اجابة
-
- 1
-
-
repair تعني أنك قمت بالتثبيت من قبل، أرجو إعادة تشغيل حاسوبك، ثم البحث في شريط البحث بالويندوز بالأسفل عن SSMS إن لم يظهر شيء ابحث عن SQL Server Management Studio ثم انقر عليه للتشغيل.
- 5 اجابة
-
- 1
-
-
إذن المشكلة في تحديث الحالة state للمكون Header، في الجزء الخاص بعملية تسجيل الدخول يجب تحديث كائن المستخدم في contexts، ثم إعادة التوجيه للصفحة الرئيسية من خلال next/router. وفي كائن Header يتم قراءة الحالة التي تم تحديثها. في حال استمرت المشكلة أرفق مجلد المشروع لتفقده.
-
الفكرة ببساطة هي حفظ الملفات والبيانات على خوادم بعيدة مُتاحة عبر الإنترنت، بدلًا من تخزينها على أجهزتك المحلية (مثل الهارد ديسك)، ويتميز بإمكانية الوصول من أي مكان، مشاركة الملفات بسهولة، وتقليل تكاليف الصيانة، ويعتمد على تقنيات مثل الخوادم الافتراضية والتوزيع الجغرافي لضمان السرعة والاستمرارية. والخوادم المستخدمة في ذلك هي خوادم مادية Dedicated Servers، بمعنى أجهزة فعلية مملوكة أو مؤجرة من مراكز بيانات. أو خوادم افتراضية VPS/Cloud Servers، أي موارد مُجزأة من خوادم كبيرة تُقدمها شركات مثل (AWS، Google Cloud، Microsoft Azure). أو التخزين الموزع مثل نظام CDN لتسريع الوصول للبيانات عالميًا، بمعنى وجود سيرفرات في بلاد مختلفة حول العالم لتسريع الوصول للبيانات للمستخدمين في تلك المناطق. والأمر ليس بتلك السهولة، فذلك بحاجة إلى مركز بيانات ضخم لتصبح لديك منصة تخزين سحابي، ألقي نظرة على التالي: ذلك هو مركز البيانات الذي أتحدث عنه، وبالطبع الأمر بحاجة إلى مهندسي برمجيات متخصصين في قواعد البيانات وفي الـ DevOPS، بالإضافة إلى البرمجة.
-
قم بتنفيذ: jupyter contrib nbextension install --user ثم: pip install jupyter_nbextensions_configurator ثم: jupyter nbextensions_configurator enable --user
- 4 اجابة
-
- 1
-
-
ذلك نموذج تعلم عميق مُصمم خصيصًا لتحليل البقاء Survival Analysis مع مراعاة المخاطر المتعددة المُتنافسة Competing Risks، والفائدة منه التنبؤ بوقت حدوث حدث ما (مثل الوفاة، الفشل، الانتكاسة) في وجود أحداث متعددة قد تمنع حدوث الحدث الرئيسي. بمعنى يتميز بمعالجة المخاطر المُتنافسة أي التعامل مع سيناريوهات توجد فيها أحداث متعددة تؤثر على بعضها البعض كوفاة مريض بسبب سببين مختلفين، أو تحليل مغادرة العملاء مع أسباب متنافسة مثل الانتقال إلى منافس أو إلغاء الخدمة. وعدم افتراض توزيع معين، أي لا يفترض النموذج شكلًا محددًا لوظيفة الخطر، على عكس نماذج مثل Cox Proportional Hazards التي تفترض تناسبًا خطيًا للمخاطر. ويستخدم شبكات عصبية عميقة لاكتشاف العلاقات المعقدة والغير خطية بين الميزات ووقت الحدث. والتنبؤ بتوزيع الوقت بدلًا من تقدير خطر لحظي، يُخرج النموذج توزيعًا احتماليًا لوقت الحدث لكل خطر على حدة. ويعمل بالآلية التالية، يُدرب النموذج على بيانات تحتوي على: ميزات المريض/العينة Features. وقت المراقبة Time-to-event. نوع الحدث Event Type أو الإخفاق Censoring. الهندسة المعمارية: طبقات الإدخال: تستقبل الميزات (مثل العمر، التشخيص الطبي). طبقات مخفية: تتعلم تمثيلات غير خطية للبيانات. طبقات الإخراج: تُنتج احتمالية حدوث كل حدث في فترات زمنية محددة. دالة الخسارة Loss Function تجمع بين: خسارة الاحتمالية السلبية Negative Log-Likelihood لضمان دقة التنبؤات. عقوبة الاختلاف Difference Penalty لتجنب القفزات المفاجئة في التوزيع الزمني.
- 8 اجابة
-
- 1
-
-
ستجدين أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
من الأفضل عدم فعل ذلك، لأنّ LabelEncoder مُصمم خصيصًا لتحويل الفئات النصية مثل أحمر، أزرق إلى أرقام 0, 1, 2. ولو البيانات من نوع float وتُمثِّل قيمًا عددية مثل 1.5, 2.3، فهي ليست فئوية، ولا يجب تحويلها باستخدام LabelEncoder، وستحتاج إلى تسوية البيانات Normalization/Standardization في حال كانت قيمًا عددية أو التعامل معها كفئات لو تمثل تصنيفات مثل 1.0 = منخفض، 2.0 = متوسط. ففي حال القيم float وليست فئات حقيقية، أحيانًا يُفسرها النموذج بشكل خاطئ كقيم عددية، ويؤثر على الأداء، أو تظهر قيم عشرية غير متوقعة أثناء التنبؤ مثل 2.5، بينما الـ LabelEncoder يُحوّلها إلى أعداد صحيحة (0, 1, 2) فقط. بالتالي لو الـ float تمثِّل فئات حوّلها إلى نص أولاً، ثم استخدم LabelEncoder أو OrdinalEncoder: import pandas as pd from sklearn.preprocessing import LabelEncoder df['column'] = df['column'].astype(str) le = LabelEncoder() df['column_encoded'] = le.fit_transform(df['column']) أما القيم العددية فلا تستخدم LabelEncoder، بل استخدم تقنيات معالجة البيانات العددية: from sklearn.preprocessing import StandardScaler scaler = StandardScaler() df['column_scaled'] = scaler.fit_transform(df[['column']]) وفي حال القيم العشرية تمثِّل فئات مُرتبة Ordinal، عليك استخدام OrdinalEncoder مع تحديد الترتيب يدويًّا: from sklearn.preprocessing import OrdinalEncoder categories = [['1.0', '2.0', '3.0']] encoder = OrdinalEncoder(categories=categories) df['column_encoded'] = encoder.fit_transform(df[['column']]) وللعلم إن كانت القيم العشرية ناتجة عن أخطاء في البيانات كـ 1.0 بدلًا من 1، حوّلها إلى أعداد صحيحة int أولاً: df['column'] = df['column'].astype(int)
- 2 اجابة
-
- 1
-
-
يوجد قيم مفقودة في البيانات، لديك، فالأرقام في Non-Null Count، تعني عدد الصفوف التي تحتوي على بيانات غير فارغة لكل عمود. والعمود ID مثلًا يحتوي على 28800 قيمة (عدد الصفوط الكلي في البيانات)، أي لا توجد قيم مفقودة فيه، وعمود tce_match يحتوي على 9804 قيمة فقط، أي %65.9 من البيانات مفقودة هنا (28800 - 9804 = 18996 قيمة فارغة). بالتالي يوجد أخطاء في جمع البيانات مثل عدم تسجيل بعض الحقول، أو عدم انطباق البيانات لأنّ بعض الحقول أحيانًا غير ذات صلة لحالات معينة، أو بسبب خصوصيات في المجال الطبي حيث لا تُقاس بعض المؤشرات لجميع المرضى.
- 4 اجابة
-
- 1
-
-
تقنية 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
-
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.