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

Mustafa Suleiman

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

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

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

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

    384

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

  1. @نجاة العبد الرحيم في حال ما زال لديكِ وصول لحسابك على هاتفك توجهي إلى الإعدادات settings ثم الأجهزة Devices ثم اختاري Terminate all other sessions أو غلق جميع الجلسات، وسيتم تسجيل الخروج من جميع الأجهزة ماعدا جهازك الحالي. أما في حال ليس لديكِ وصول لحسابك، فستحتاجين إلى عمل reset للحساب وسيتم فقد جميع المحادثات، عند تسجيل الدخول لحسابك اضغطي على Forgot password ثم اتبعي الخطوات بعد ذلك. وفي حال تم تغيير الإيميل تستطيعي إرسال رقم التفعيل على هاتفك reset via SMS من خلال الإشتراك في telegram premium.
  2. لا أنصحك باستخدام تقنية قديمة جدًا مثل Microsoft Expression Web بل اعتمد على لغات الويب وهم HTML, CSS, JS وبالأخص JS فهي لغة البرمجة التي ستوفر لك ما تحتاجه بخصوص تنفيذ المنطق الذي تريده عند الضغط على زر معين في الصفحة. وبالأخص من خلال Clipboard API والذي توفره المتصفحات للنسخ واللصق وهو الطريقة الحديثة لفعل ذلك وليس Document.execCommand()‎. وإليك مثال بسيط: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Copy to Clipboard Example</title> </head> <body> <input type="text" id="textToCopy" value="Copy this text!"> <button onclick="copyToClipboard()">Copy Text</button> <script src="index.js"></script> </body> </html> كود جافاسكريبت: function copyToClipboard() { const textField = document.getElementById('textToCopy'); // اختيار النص textField.select(); textField.setSelectionRange(0, 99999); // For mobile devices navigator.clipboard.writeText(textField.value) .then(() => { console.log('Text copied to clipboard'); alert('Text copied to clipboard: ' + textField.value); }) .catch(err => { console.error('Failed to copy text: ', err); }); }
  3. في أي استضافة يوجد ما يسمى DNS Records وذلك لربط الـ DNS الخاصة بالدومين بالاستضافة. بمعنى نحصل على name servers من الاستضافة ثم نقوم بإضافتهم في لوحة التحكم في حسابك على مقدم الدومين لديك وهو namecheap عند الضغط على manage بجانب الدومين. لكن أولاً تتجه للاستضافة وهي Cloudflare Pages لديك ثم اضغط على مشروعك ثم اختر Custom domains ثم اضغط على Set up a domain ثم الضغط على begin dns transfers ثم قم بكتابة اسم الدومين الخاص بك وسيتم إعداد البيانات بشكل تلقائي واختر باقة free، وستحصل على أسماء الـ name servers. قم بنسخها وإضافتها في حسابك على namecheap في الجزء الخاص بـ name servers واختر custom DNS ثم أضف البيانات. وأحيانًا سيتعين عليك الإنتظار بضع ساعات لحين تحديث بيانات الـ DNS.
  4. ما تقصده هو لخرائط الثابتة Static Maps وهي صور ثابتة للخريطة من Google Maps، وليست خرائط تفاعلية. ويتم تسعير الخرائط الثابتة حسب عدد الصور التي تطلبها في الشهر، بمعنى قياس الاستخدام بوحدة "صور/شهر" (images/month)، حيث كل صورة خريطة ثابتة يتم إنشاؤها تعتبر 15 طلبًا requests، وذلك يعني أن كل صورة تستهلك 15 وحدة من حصتك الشهرية. وكما ترى في الموقع الرسمي يوجد شريط تمرير أفقي في الأعلى يوضح نطاقات الاستخدام المختلفة، وتلك النطاقات هي: 0k (صفر)، 100k (100 ألف)، 500k (500 ألف)، 5m (5 ملايين)، 10m (10 ملايين). ويوجد مربع نصي يعرض عدد الصور التي تم اختيارها حاليًا. في الصورة، القيمة هي 10000 صورة في الشهر. ويوجد نص أسفل المربع النصي يوضح أن "1 صورة = 15 طلبًا"، أي أنه في حال طلبت 10000 صورة في الشهر، فإنك تستهلك 150000 طلبًا (10000 * 15). بالتالي قمت بتحديد 10000 صورة في الشهر، فإنك تستهلك 150000 طلبًا، ولو تجاوزت ذلك العدد، فسيتم محاسبتك على الطلبات الإضافية أو يتم تقييد استخدامك.
  5. أحيانًا يحدث إلتباس بالفعل عند الضغط على ذلك الزر، عذرًا على ذلك، لمتابعة تقدمك في الوقت الحالي تستطيع وضع رابط الدرس الذي توقفت عنده في Google Keep مثلاً أو ما شابه لكي تتمكن من المتابعة عند العودة في حالة توقفت لفترة بسيطة أو طويلة.
  6. الشريك الثاني مساهم بجهده في توفير المكان والرعاية للكتاكيت، وهي مساهمة غير مالية ولكنها ضرورية لنجاح المشروع. بشكل تقريبي لنفترض أن قيمة ثمن الكتاكيت هي 100 وحدة، وقيمة المجهود في تربية الكتاكيت هي 50 وحدة (قيمة تقديرية للمجهود). إذن المساهمة الإجمالية = قيمة ثمن الكتاكيت + قيمة المجهود = 100 وحدة + 50 وحدة = 150 وحدة نسبتك أنتي حيث دفعتي ثمن الكتاكيت، 100 وحدة / 150 وحدة = 2/3، في حين الشريك الثاني (ساهم بمجهوده) 50 وحدة / 150 وحدة = 1/3 بمعنى أنتي 2/3 من الأرباح وهو 1/3 من الأرباح. أي لو كانت الأرباح 300 فنسبتك أنتي 2/3 × 300 وحدة = 200 وحدة، والشريك الثاني 1/3 × 300 وحدة = 100 وحدة.
  7. تلك أداة إحصائية لتحليل البيانات الزمنية وتقدير نسبة البقاء على قيد الحياة في مجموعة من الأفراد أو الأحداث لفترة زمنية محددة، حيث يتم تسجيل الوقت الذي يستغرق حدث معين حتى يحدث.. وتستخدم بشكل شائع في الدراسات الطبية لتقدير بقاء المرضى بعد تشخيص مرض معين أو بعد تلقي علاج معين، أيضًا في مجالات أخرى. ويعمل عن طريق تحليل البيانات الزمنية وتقدير نسبة البقاء على قيد الحياة في كل نقطة زمنية، أي يتم ذلك عن طريق حساب نسبة الأفراد الذين ما زالوا على قيد الحياة في كل نقطة زمنية، ورسم النسبة على محور الرأسي Y-axis والذي يمثل نسبة البقاء Survival Probability، وتتراوح النسبة بين 0 و 1 (أو 0% و 100%). النسبة 1 تعني أن جميع الأفراد ما زالوا على قيد الحياة (أو في الحالة المحددة)، بينما النسبة 0 تعني أن جميع الأفراد قد توفوا (أو خرجوا من الحالة المحددة). بينما المحور الأفقي X-axis يمثل الوقت. قد يكون بالأسابيع، الأشهر، السنوات، أو أي وحدة زمنية أخرى ذات صلة بالدراسة. في حين الخط المتعرج هو المنحنى نفسه، ويبدأ من النقطة (0,1) أي أن جميع الأفراد كانوا على قيد الحياة في بداية الدراسة. ثم ينخفض المنحنى تدريجيًا مع مرور الوقت، حيث يمثل كل انخفاض وفاة (أو خروج) فرد واحد أو أكثر من المجموعة. ولقراءته اختر نقطة زمنية على X-axis تريد معرفة نسبة البقاء عندها، ثم ارسم خطًا رأسيًا من النقطة الزمنية التي اخترتها حتى يتقاطع مع المنحنى. من نقطة التقاطع، ارسم خطًا أفقيًا إلى Y-axis، والقيمة التي تقرأها على المحور الرأسي هي نسبة البقاء المقدرة عند تلك النقطة الزمنية.
  8. الدالة min، لأنّ قيمة k يتم حسابها باستخدام الدالة min على أبعاد جدول التوافق contingency_table، حيث K تمثل عدد الصفوف أو الأعمدة الأقل في جدول التوافق، أي هي الأبعاد الأصغر للجدول. وللعلم Cramér's V هو مقياس لقوة الارتباط بين متغيرين اسميين categorical variables، ويتم حسابه حسب إحصائية مربع كاي Chi-squared statistic. وفي حساب Cramér's V، نقسم إحصائية مربع كاي على قيمة تعتمد على حجم العينة وعدد الفئات في المتغيرات، بالتالي استخدام min يضمن أننا نستخدم الأبعاد الأصغر للجدول، مما يؤدي إلى قيمة Cramér's V تتراوح بين 0 و 1. وفي حال استخدمت max بدلاً من min، فإن قيمة Cramér's V قد تتجاوز 1، وذلك غير صحيح، ويفضل استخدام الحد الأدنى من الأبعاد min بدلاً من الحد الأقصى max لأنها توفر تقديرًا أكثر دقة لمعامل الارتباط.
  9. الدراسة ليست من خلال المنتديات بل من خلال الدورات أو المستند الرسمي أو مقالات متعمقة تشرح أجزاء معينة من مكتبة أو إطار وخلافه أو من خلال كتاب مثلاً، لكن الأفضل البدء من خلال دورة متعمقة كانت أم بسيطة، المهم هو شرح عملي يوضح لك الخطوات وما عليك فعله بشكل عملي وليس نظري، ففي البداية أنت بحاجة إلى من يرشدك خطوة بخطوة قدر الإمكان. بعد ذلك تستطيع أن تنطلق وتتعلم من أي مصدر تريد طالما لديك الأساسيات اللازمة، لديك مثلاً في أكاديمية حسوب دورات مختلفة وأيضًا مقالات ودروس وأيضًا كتب لتعلم البرمجة من الصفر. بخصوص مجموعات الدراسة فمن الممكن البحث عن mentor على موقع مثل LinkedIn يوفر جزء من وقته بشكل طوعي لتعليم الآخرين، لكن ذلك قليل ويوجد مثل ذلك بشكل مدفوع بنسبة أكبر، يوجد أيضًا على ذلك الموقع أناس بنفس المستوى تستطيع التواصل معهم والدراسة أو قم بتجربة السؤال على جروبات البرمجة على فيسبوك. لكن أنصحك بالدراسة بمفردك قدر الإمكان وعدم الإعتماد على الآخرين لتحفيزك، الإلتزام هو الأهم. أيضًا عليك تحديد مجال البرمجة الذي تريده حسب المطلوب في سوق العمل وليس حسب ما تفضله أنت.
  10. يوجد شرح عن DOM في دورة تطوير واجهات المستخدم في مسار أساسيات تطوير الويب في قسم أساسيات JavaScript. ومسار أساسيات تطوير الويب في دورة تطوير واجهات المستخدم مجاني لك تستطيع دراسته، وجميع المسارات الأولى من جميع الدورات متاحة لك بشكل مجاني. بخصوص الـ BOM فستجد شرح له هنا: والمزيد من الشرح حول DOM:
  11. مصدر ما ذكرته لك من هنا من الموقع الرسمي: https://support.google.com/paymentscenter/answer/9037801?hl=en#:~:text=You cannot change the country,with the associated payments profile. سواء كانت الإجابة من أي مصدر ما يتم بالأكاديمية هو مساعدة السائل، أرجو التحدث بشكل لائق للمكان الذي تتواجد به. بالعودة لسؤالك هل يمكنك توفير صورة للمشكلة لتوضيحها والمكان الذي تحاول منه تغيير ملف الدفع؟
  12. ذلك تم الإعلان عنه منذ أسبوع تقريبًا، وهي شريحة كمومية جديدة من جوجل تسمى Willow، والتي تحقق إنجازات كبيرة في مجال الحوسبة الكمومية، خاصة في مجال تصحيح الأخطاء الكمومية وتفوقها على الحواسيب الكلاسيكية في بعض الحسابات، حيث Willow تمثل خطوة كبيرة نحو بناء حواسيب كمومية عملية وذات جدوى تجارية. وتتميز بأداء متطور في عدة مقاييس، مما يمكنها من تحقيق إنجازين رئيسيين، وتم تصنيعها في منشأة تصنيع حديثة في سانتا باربرا، وتعتمد على هندسة النظام، حيث يتم دمج جميع مكونات الشريحة (مثل البوابات أحادية وثنائية الكيوبت، وإعادة ضبط الكيوبت، والقراءة) بشكل جيد. وتستطيع تقليل الأخطاء بشكل كبير مع زيادة عدد الكيوبتات، وتمكنت من تحقيق "أقل من الحد الأدنى للأخطاء المسموح بها Below threshold" في تصحيح الأخطاء، وهو إنجاز هام في ذلك المجال، ويعني أنه مع زيادة عدد الكيوبتات، يقل معدل الخطأ، مما يجعل النظام أكثر كمومية. تم تحقيق ذلك من خلال اختبار مصفوفات متزايدة من الكيوبتات المادية (3x3، 5x5، 7x7) وتقليل معدل الخطأ إلى النصف في كل مرة، وتعتبر Willow أول نظام ينجح في إظهار تصحيح الأخطاء في الوقت الفعلي على نظام كمومي فائق التوصيل. وتجاوزت نقطة التعادل، حيث أن مصفوفات الكيوبتات لديها عمر أطول من الكيوبتات المادية الفردية، مما يدل على أن تصحيح الأخطاء يحسن النظام بشكل عام. الهدف التالي هو إظهار أول عملية حسابية مفيدة، تتجاوز الحواسيب الكلاسيكية على الشرائح الكمومية الحالية، والتي تكون ذات صلة بتطبيق واقعي. وتهدف جوجل إلى الجمع بين اختبار RCS (الذي يقيس الأداء ضد الحواسيب الكلاسيكية) والمحاكاة العلمية للأنظمة الكمومية (التي تؤدي إلى اكتشافات علمية جديدة) في نفس الوقت، أيضًا تسعى إلى تطوير خوارزميات يمكنها حل المشكلات التجارية ذات الصلة والتي لا يمكن حلها باستخدام الحواسيب الكلاسيكية.
  13. لمساعدتك بشكل أفضل، ذكرت المراجعة على لغات البرمجة، فما الهدف من دراسة أكثر من لغة برمجة، هل أنت في بداية دراستك للبرمجة أم تتعلم لغة أخرى بجانب تخصصك الحالي؟
  14. من الممكن الحصول على الدورات بخصومات في أوقات العرض مثل العروض الصيفية أو عروض بداية العام أو عروض رمضان وغيرهم، وأحيانًا يتوفر أكواد خصومات قم بسؤال مركز المساعدة عن توافر ذلك حاليًا أم لا. جميع دورات أكاديمية حسوب هي دورات مدفوعة ويتم تقديم مزايا كثيرة عند الإشتراك بها مع ضمانات أيضًا لذلك الدورة ليس منخفضة الثمن.
  15. df.dropna() تقوم بحذف أي صف يحتوي على أي قيمة مفقودة في أي عمود، بينما df.dropna(axis=0) نفس عمل df.dropna()، حيث axis=0 يشير إلى الصفوف والأمر بحاجة إلى توضيح هنا: في Pandas، نتعامل مع البيانات في شكل جداول DataFrames، ولها بعدين: المحور 0 (axis=0) يمثل الصفوف. تخيل أنك تتحرك عموديًا في الجدول، من الصف الأول إلى الصف الأخير. المحور 1 (axis=1) يمثل الأعمدة. تخيل أنك تتحرك أفقيًا في الجدول، من العمود الأول إلى العمود الأخير. import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) print("DataFrame الأصلي:\n", df) سنقوم بالحذف: # حذف الصفين ذوي الفهرس 0 و 2 df_dropped_rows = df.drop([0, 2], axis=0) print("\nDataFrame بعد حذف الصفوف:\n", df_dropped_rows) سنحصل على التالي: DataFrame الأصلي: A B C 0 1 4 7 1 2 5 8 2 3 6 9 DataFrame بعد حذف الصفوف: A B C 1 2 5 8 ولو كتبت التالي: # حذف العمودين 'A' و 'C' df_dropped_columns = df.drop(['A', 'C'], axis=1) print("\nDataFrame بعد حذف الأعمدة:\n", df_dropped_columns) ستحصل على: DataFrame الأصلي: A B C 0 1 4 7 1 2 5 8 2 3 6 9 DataFrame بعد حذف الأعمدة: B 0 4 1 5 2 6 بينما df.dropna(thresh=n) تحذف الصفوف التي تحتوي على أقل من n من القيم غير المفقودة، أي قم باستبدال n بالرقم الذي تريد تحديده. و df.dropna(subset=['column1', 'column2']) تحذف الصفوف التي تحتوي على قيم مفقودة في الأعمدة المحددة فقط.
  16. tce_div_match (TCE Divergence Match) يصف مدى التباين أو الاختلاف بين الخلايا التائية (T cells) والخلايا المستهدفة Target cells بخصوص زراعة نخاع العظم أو زرع الخلايا الجذعية. Bi-directional non-permissive يعني هناك عدم توافق في كلا الاتجاهين، أي أن الخلايا التائية من المتبرع لا تتوافق مع خلايا المتلقي، والعكس صحيح، وذلك النوع من عدم التوافق قد يؤدي إلى مضاعفات خطيرة. GvH non-permissive يعني أن الخلايا التائية من المتبرع Graft لا تتوافق مع خلايا المتلقي Host، وقد يؤدي إلى مرض الطعم حيال المضيف Graft-versus-Host Disease, GvHD. HvG non-permissive مفاده أن الخلايا التائية من Host لا تتوافق مع خلايا Graft، وربما يؤدي إلى رفض الطعم Host-versus-Graft Disease, HvGD. Permissive mismatched معناه وجود بعض الاختلافات بين الخلايا التائية والخلايا المستهدفة، ولكنها ليست كبيرة بما يكفي لإحداث رد فعل مناعي قوي، وذلك النوع من التوافق يكون مقبولًا في بعض الحالات. tce_match (TCE Match) يصف مدى التوافق بين الخلايا التائية والخلايا المستهدفة، و Fully matched يشير إلى أن الخلايا التائية والخلايا المستهدفة متطابقة تمامًا، مما يقلل من خطر حدوث مضاعفات مناعية. HvG non-permissive و GvH non-permissive نفس المعنى كما في tce_div_match. Permissive معناه وجود توافق مقبول بين الخلايا التائية والخلايا المستهدفة، مع وجود بعض الاختلافات الطفيفة. إذن tce_div_match يركز على الاختلافات بين الخلايا التائية والخلايا المستهدفة، ويصنفها حسب اتجاه عدم التوافق (ثنائي الاتجاه، GvH، HvG). بينما tce_match يركز على مدى التوافق بين الخلايا، ويصنفها حسب درجة التطابق (مطابقة كاملة، غير متوافقة، متوافقة بشكل مقبول). أي في حال مهتم بفهم أنواع عدم التوافق المحتملة (GvH، HvG، ثنائي الاتجاه) فستحتاج إلى الاحتفاظ بعمود tce_div_match، ولو مهتم بتقييم درجة التوافق بشكل عام (مطابقة كاملة، متوافقة بشكل مقبول، غير متوافقة) فستحتاج إلى الاحتفاظ بعمود tce_match، وكلاهما يقدمان معلومات مختلفة ومكملة لبعضها البعض، حيث tce_div_match يعطيك تفاصيل أكثر عن طبيعة عدم التوافق، بينما tce_match يعطيك تقييمًا عامًا لدرجة التوافق. بخصوص 60% من البيانات مفقودة في tce_match فربما البيانات الموجودة في tce_match تم جمعها باستخدام طريقة مختلفة عن تلك المستخدمة لجمع بيانات tce_div_match وبعض الحالات لم يتم فيها إجراء اختبار التوافق الذي ينتج عنه بيانات tce_match. أو البيانات في tce_match تم جمعها في مرحلة لاحقة من الدراسة، وبالتالي لم يتم الحصول عليها لجميع الحالات، أو أخطاء في عملية جمع البيانات أو تسجيلها، مما أدى إلى فقدان بعض القيم في tce_match.
  17. لا يمكن ربط ملف الدفع الواحد إلا ببلد واحد فقط بسبب اللوائح الضريبية، ولا تستطيع تغيير البلد لملف دفع موجود، أي يجب عليك إنشاء ملف تعريف جديد لاستخدام بلد مختلف. وإنشاء ملف دفع جديد في بلد آخر لا يؤثر على خدماتك واشتراكاتك الحالية، ستستمر مدفوعاتها باستخدام ملف الدفع المرتبط بها. ما تحتاجه هو إنشاء ملف دفع جديد وربطه ببلد جديد: سجّل الدخول إلى الإعدادات. ضمن ملف الدفع Payments profile، بجوار البلد/المنطقة، انقر على Edit. انقر على Choose a country or region إنشاء ملف تعريف جديد Create new profile ثم Continue. انقر على اختيار بلد أو منطقة Choose a country or region، ثم اختر البلد الذي تريد ربطه بملفك الجديد. انقر علىContinue. أدخل اسمك وعنوانك، ثم انقر على إرسال Submit.
  18. بخصوص أكاديمية حسوب فيوجد مجتمع I/O تستطيع التواصل من خلال المجتمعات الخاصة بالبرمجة. أيضًا يمكنك إنشاء حساب على LinkedIn والتواصل مع من لديهم نفس الهدف وفي نفس المستوى والدراسة سويًا، لديك أيضًا على فيسبوك مجموعات خاصة بالبرمجة تستطيع السؤال عن مجموعة تم إنشائها والإنضمام إليهم على واتساب مثلاً او تيليجرام. لكن لا تعتمد على أيًا من ذلك لتصل لهدفك، الإلتزام هو مفتاح النجاح في أي مجال، من يلتزم يصل حتى لو كان أقل في المستوى من شخص ذكي وموهوب لكنه كسول وغير ملتزم. الأمر أشبه بأصدقاء صالة كمال الأجسام، هل عند تغيب أحدهم لن تقوم بالتمرين الخاص بك اليوم؟
  19. هناك فرق كبير بين object و str في بايثون، خاصةً عند التعامل مع مكتبة Pandas وذلك الفرق هو السبب في أن الكود الأول يعمل بشكل صحيح بينما الكود الثاني لا يعمل كما تتوقع. بمعنى عند قراءة بيانات من ملف (مثل CSV أو Excel) باستخدام Pandas، فإن الأعمدة التي تحتوي على strings أو بيانات مختلطة مثل أرقام ونصوص يتم تخزينها بنوع بيانات object بشكل إفتراضي. ولكن نوع البيانات Object له نطاق أوسع بكثير. فهو لا يشمل فقط النصوص، بل يمكن أن يشمل أيضًا أي بيانات أخرى لا تفهمها Pandas. وobject هو نوع بيانات عام في Pandas يمكن أن يحمل أي نوع من البيانات في بايثون، ولكنه يستخدم بشكل أساسي لتمثيل النصوص، والأهم ليس كل عمود من نوع object هو بالضرورة عمود نصي string، فقد يحتوي على أنواع بيانات أخرى مختلطة. بعد Pandas 1.0، أصبح هناك نوع بيانات مخصص للتعامل مع بيانات النصوص والعمل بها، وهو StringDtype، بالتالي في حال نوع العمود Object، فلا يعني بالضرورة أن جميع القيم ستكون نصية، في الواقع، يمكن أن تكون جميعها أرقامًا، أو مزيجًا من النصوص والأعداد الصحيحة والأعداد العشرية. إذن مع وجود ذلك التباين، فلا تستطيع إجراء أي عملية نصية على العمود مباشرة. عامًة str هو نوع بيانات أساسي في بايثون يمثل سلسلة من الحروف (نص)، بالتالي في حال data_train[columns].dtypes == str، فإنك تسأل Pandas هل نوع البيانات في العمود هو تحديدًا str، وهو ليس ما يحدث عند قراءة البيانات من ملف. بينما الشرط if data_train[columns].dtypes == object سيتم تنفيذه في حال نوع العمو هو object، بغض النظر عن نوع البيانات التي يحتويها. لذا، بإمكانك استخراج ومعالجة النصوص فقط داخل الأعمدة عن طريق إخبار Pandas بشكل صريح أن نوع البيانات هو 'String' وليس 'Object'. ستجد تفصيل هنا: https://pandas.pydata.org/docs/user_guide/text.html
  20. المفهوم الأساسي بسيط، الفكرة الأساسية هي أننا نستخدم بيانات العينة لتقدير قيمة غير معروفة في المجتمع (مثل متوسط الدخل في بلد ما)، ومجال الثقة يعطينا نطاقًا من القيم المحتملة لتلك القيمة غير المعروفة، مع مستوى معين من الثقة. وفي معظم الحالات، لا تحتاج إلى فهم عميق للرياضيات الكامنة وراء حساب الفترات الثقة، أي تستطيع استخدام الأدوات الإحصائية (مثل برامج الإحصاء أو لغات البرمجة) لحسابها وتفسيرها.
  21. LabelEncoder يقوم بتحويل القيم الفئوية (مثل أحمر، أخضر، أزرق) إلى قيم رقمية صحيحة (مثل 0، 1، 2)، أي يعين رقمًا فريدًا لكل فئة حسب ترتيب ظهورها في البيانات أو ترتيب أبجدي. ونستخدمه مع البيانات Ordinal Categorical Data، أي البيانات التي تحمل ترتيبًا أو تسلسلًا منطقيًا (مثل منخفض، متوسط، مرتفع). أيضًا مع البيانات الفئوية الاسمية Nominal Categorical Data مثل الألوان، ولكن بحذر شديد، لأن ذلك أحيانًأ يؤدي إلى مشاكل في بعض الخوارزميات مثل إدخال ترتيب غير مرغوب حيث الأرقام التي يعينها قد تفهمها الخوارزمية على أنها ترتيب أو علاقة، وهذا غير صحيح، بمعنى قد تفهم الخوارزمية أن أزرق (2) أكبر من أحمر (0)، وذلك غير منطقي. وأحيانًا يؤثر على أداء بعض الخوارزميات (مثل الانحدار الخطي) تتأثر سلبًا بالترتيب غير المنطقي الذي قد يضيفه LabelEncoder للبيانات الاسمية. بينما OneHotEncoder يقوم بتحويل القيم الفئوية إلى أعمدة ثنائية (0 أو 1) لكل فئة، أي ينشئ عمودًا جديدًا وفي حال القيمة في الصف تنتمي إلى تلك الفئة، يضع 1 في العمود المقابل، وإلا يضع 0. ويستخدم بشكل أساسي مع Nominal Categorical Data، حيث لا يوجد ترتيب منطقي بين الفئات، وأيضًا مع البيانات الترتيبية، ولكن ربما يؤدي إلى زيادة كبيرة في عدد الأعمدة (الأبعاد) في حال كان عدد الفئات كبيرًا. ميزته تجنب إدخال ترتيب غير مرغوب حيث لا يفرض أي ترتيب أو علاقة بين الفئات، بالتالي هو مناسب للبيانات الاسمية، بجانب أنه يساعد الخوارزميات على فهم البيانات الفئوية بشكل أفضل، خاصةً الخوارزميات التي تعتمد على المسافات أو العلاقات الخطية. ومن عيوبه أحيانًا زيادة كبيرة في عدد الأعمدة (الأبعاد) في حال عدد الفئات كبيرًا، بالتالي يؤثر على أداء بعض الخوارزميات أو يزيد من استهلاك الذاكرة. أيضًأ مشكلة التعدد الخطي Multicollinearity لو هناك علاقة خطية بين بعض الأعمدة الناتجة عن OneHotEncoder، الأمر الذي يؤثر على بعض الخوارزميات (مثل الانحدار الخطي)، وتستطيع حل المشكلة باستخدام تقنيات مثل حذف أحد الأعمدة أو استخدام Regularization.
  22. نستخدمها مثلاً لتقدير قيمة معينة على أساس عينة عشوائية، وتعطي فكرة عن مدى الثقة في تقدير تلك القيمة، وتساعد في تحديد مدى دقة التقدير. وبالتفصيل تظهر أهميتها في تقدير النطاق المحتمل للقيمة الحقيقية للمَعْلَمة حيث في الإحصاء، المعلمة Parameter هي قيمة عددية تصف خاصية لمجتمع إحصائي بأكمله (مثل متوسط الدخل لجميع سكان بلد ما). والعينات Samples ففي الواقع، غالبًا ما يكون من المستحيل أو المكلف قياس المعلمة مباشرة، بالتالي نأخذ عينة من المجتمع ونحسب إحصائية من تلك العينة (مثل متوسط الدخل في عينة من السكان). ومجال الثقة يوفر نطاقًا من القيم المحتملة التي قد تقع فيها المعلمة الحقيقية للمجتمع، حسب الإحصائية المحسوبة من العينة، وذلك النطاق يعطينا فكرة عن مدى دقة تقديرنا للمعلمة. أيضًا مفيدة في قياس عدم اليقين في التقديرات، فبسبب طبيعة العينات العشوائية الإحصائية المحسوبة من عينة واحدة قد تختلف قليلاً عن الإحصائية المحسوبة من عينة أخرى. ويعكس مجال الثقة ذلك التباين وعدم اليقين، فكلما كان مجال الثقة أوسع، زاد عدم اليقين في تقديرنا للمعلمة، ويرتبط عرض مجال الثقة بمستوى الثقة (مثل 95% أو 99%)، ومستوى الثقة يمثل نسبة العينات التي ستنتج فترات ثقة تحتوي على المعلمة الحقيقية للمجتمع. للتوضيح، لو كانت القيمة المتوقعة لارتفاع طالب في المدرسة الثانوية هي 175 سم، مع انحراف معياري قدره 5 سم، فإن مجال الثقة بنسبة 95% هي (165 سم، 185 سم)، وذلك يعني أن هناك 95% من الثقة في أن القيمة الحقيقية لارتفاع طالب في المدرسة الثانوية تقع بين 165 سم و185 سم. أو لو هناك دراسة طبية تقارن بين دواء جديد ودواء وهمي، فإن مجال الثقة سيوضح النطاق المحتمل للفرق في الفعالية بين الدوائين.
  23. ما الهدف من العمود؟ في كثير من الأحيان سيكون ذلك لتجميع فئات أقل شيوعًا أو ذات أهمية ثانوية، أي قبل أي شيء، حاول فهم ما الذي يمثله Other، هل هو تجميع لفئات محددة؟ هل هو فئة افتراضية؟ أيضًا تفقد هل ذلك لا يمثل بيانات مفقودة أو غير صحيحة، فربما تحتاج إلى تنظيف البيانات إن كان الأمر كذلك. بالتالي في حال كانت تمثل فئة ذات معنى في التحليل، أو تريد الحفاظ على جميع الفئات الأصلية فلا تحتاج إلى فعل أي شيء، من الممكن إعادة التسمية في تلك الحالة. وفي حال كانت تمثل فئات صغيرة فيمكن دمجها مع فئة أخرى ذات صلة. أما في حال تمثل فئات غير محددة فقم بتوزيعها بناءًا على نسبة معينة، لكن تلك الطريقة أكثر تعقيدًا وتتطلب فهمًا أعمق للبيانات لديك. وفي حال تمثل نسبة صغيرة جدًا من البيانات ولا تؤثر بشكل كبير على التحليل، قم بحذفها، وهناك طريقة أخرى وهي التعامل معها كبيانات مفقودة NaN في التحليل.
  24. الطريقة الأبسط هي تشغيل سيرفر المشروع كما تفعل أثناء التطوير وستتمكن من الوصول للمشروع من خلال الـ IP الخاص بجهازك ثم رقم المنفذ وهو 8000 إفتراضيًا لمشاريع جانغو. أي لو كان عنوان جهازك هو 192.168.12.1 فتستطيع الوصول للمشروع من خلال أي جهاز بكتابة التالي في المتصفح: 192.168.12.1:8000 وقم بإضافة التالي للإعدادادت للسماح بالإتصال من العناوين المختلفة: ALLOWED_HOSTS = ['*'] بالنسبة للمواصفات فالمعالج يعتمد على نوع المشروع لكن معالج رباعي النواة أو أفضل حديث سيوفي الغرض، بالإضافة إلى 16 جيجابايت على الأقل (يفضل 32 جيجابايت أو أكثر)، وللتخزين 256-512 جيجابايت من نوع SSD. وبطاقة شبكة تدعم سرعة 1 جيجابت في الثانية. هناك طريقة أخرى إحترافية أكثر وهي من خلال nginx + gunicorn
×
×
  • أضف...