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

ياسر مسكين

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

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

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

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

    6

كل منشورات العضو ياسر مسكين

  1. السلام عليكم ورحمة الله تعالى وبركاته، إصدار HTML الخامس يعني الجيل الأحدث من لغة ترميز الصفحات على الويب بعد HTML4 وXHTML حيث جاء لتجاوز قيود الإصدارات السابقة وتوحيد المعايير بين المتصفحات وتقنيا HTML5 لا يقتصر على تحسين بناء الجملة فحسب بل قدّم مجموعة من العناصر الجديدة مثل <header>, <article>, <section>, <footer> لتنظيم المحتوى بشكل دلالي أفضل كما أضاف دعما مدمجا لعرض الوسائط المتعددة عبر <audio> و<video> دون الحاجة إلى إضافات مثل Flash. كذلك قدّم واجهات برمجية (APIs) جديدة مثل Canvas API للرسم ثنائي الأبعاد، Geolocation API لتحديد موقع المستخدم، وLocal Storage لتخزين البيانات محليا في المتصفح بدلا من الاعتماد فقط على ملفات الكوكيز. كما حسّن التوافق مع الأجهزة المحمولة من خلال دعم الاستجابة (Responsive Design) بشكل أفضل، وأصبح أكثر تكاملا مع CSS3 وJavaScript.
  2. لا شكّ أنّ دورة علوم الحاسوب ستمنحك معرفة عامة بأساسيات علوم الحاسوب من برمجة، قواعد بيانات، أنظمة تشغيل، شبكات وأمن. وهذه المعرفة وحدها لا تكفي للحصول على وظيفة لكنها تمنحك القدرة على فهم المجالات البرمجية المختلفة واختيار واحد منها للتخصص. وبعد الانتهاء ستحتاج بالضرورة إلى دراسة متعمقة في مجال محدد، مع تعلم لغات وأدوات مرتبطة به، ثم بناء خبرة عملية من خلال مشاريع وتطبيقات واقعية. والمجالات الأكثر ارتباطا بسوق العمل حاليا والتي يمكنك التوجه إليها هي: تطوير الويب والتطبيقات الذكاء الاصطناعي وعلوم البيانات الأمن السيبراني أو إدارة الأنظمة والبنية التحتية. وغيرها وبالتالي دور هذه الدورة هو وضعك على الطريق الصحيح، أما الوصول إلى وظيفة يتطلب منك خطوة إضافية تتمثل في التخصص والممارسة العملية المستمرة وعمل مشاريع كثيرة أما اسرتداد الاستثمار بعد 6 أشهر في حال لم تحصل على وظيفة فهذا يبقى ساري المفعول ويمكنك الاستفسار عن ذلك مباشرة من هنا: https://support.academy.hsoub.com/conversations
  3. رسالة الخطأ في Terminal تظهر أن المشكلة أن النظام يحاول تشغيل ملف يسمى index.mjs كما يظهر في الخطأ بينما الملف الموجود فعليا في المشروع يسمى index.js وهذا تضارب في أسماء الملفات يمنع تشغيل المشروع والحل هو إما تغيير اسم الملف من index.js إلى index.mjs أو تعديل إعدادات package.json في قسم scripts ليشير إلى index.js بدلا من index.mjs. وأخيرا في حال كان سؤالك متعلقا بإحدى الدروس في أحد الدورات التي اشتركت فيها فأرجو نقل سؤالك هناك أسفل الدرس، فهنا نجيب فقط على الأسئلة العامة.
  4. السلام عليكم ورحمة الله تعالى وبركاته، بداية يجب توضيح الحجم الساعي للدورتين التي تتحدث عنهما، فدورة تطوير واجهات المستخدم تضمّ 72 ساعة فيديو تدريبية كاملة تتناول الشقّ النظري والتطبيقي عبر عدة مسارات ومحاور كما أنّه يتوفّر مدربون على مدار الساعة لمرافقة الطلبة إلى حين إكمالهم الدورة ويوجد فريق يتابعك إلى حين اجتياز الاختبار وحتى ما بعد اجتازه: وبالنسبة لدورة تطوير التطبيقات باستخدام لغة جافا سكريبت فهي لا تحتوي على 5 ساعات ربما بل أضعاف ذلك ففيها 78 ساعة فيديو تدريبية كاملة كما هو موضح في صفحة الدورة هنا: يمكنك التأكد من هنا: https://academy.hsoub.com/learn/front-end-web-development ومن هنا : https://academy.hsoub.com/learn/javascript-application-development بخصوص دورات أكاديمية حسوب فلها طابعها الخاص ومميزاتها الخاصة بها، فمجرد مشاهدة الدرس دون تطبيق عملي قد يجعل الطالب لا يستفيد أقصى استفادة من محتوى الدورة، لهذا نقوم بمرافقة الطلبة أثناء الدرس والتطبيق العملي وشرح ما استصعب عليهم فهمه وهذا على مدار اليوم والأسبوع يمكنك مراجعة هذه الأجوبة للاستفادة أكثر من المحتوى المقدم: كما أنّ الاشتراك في دورات أكاديمية حسوب لا يمكن مقارنته بسلسلة دروس على اليوتيوب فالأكاديمية تضمن استعادة الاستثمار لمن لم يحصل على وظيفة خلال 6 أشهر بعد اجتياز الامتحان وتقدم شهادات معتمدة تسمح بالتحقق من صحتها بسهولة كما تضمن لك وصولا مدى الحياة للمحتوى فبعد الانضمام للدورة يحصل الطالب على وصول دائم لمحتواها كما أنّه يتم تحديث الدورات بشكل تدريجي ودوري ومجاني أيضا، كما يمكنك الاطلاع على المزايا التي تقدمها أكاديمية حسوب لطلبتها من هنا: https://support.academy.hsoub.com/page/courses-features في حال لم تفهم المسار الذي أنت فيه الآن، أرجو مراجعته مرة أخرى، ثم أسفل الدروس التي تواجهك فيها صعوبات يمكنك طرح انشغالاتك هناك وسنساعدك على حلّها بكلّ صدر رحب.
  5. الأساس هو وضع المجلد الذي يحتوي على الملفات التنفيذية القابلة للتشغيل (executables) وليس الملفات نفسها لأنه عند إضافته إلى ال Path يتيح لنظام التشغيل الوصول إلى هذه الملفات من أي مكان في الطرفية سواء من Command Prompt أو PowerShell أو Terminal دون الحاجة للانتقال إلى المجلد مباشرة. بمعنى آخر Path لا يضيف الملفات الفردية بل المسار الكامل للمجلد الذي يحتوي على البرامج أو السكربتات التي تريد أن تكون متاحة عالميا للنظام فإذا قمت بتحميل برنامج مثل Node.js يجب أن تضيف إلى Path مجلد C:\Program Files\nodejs\ الذي يحتوي على node.exe و npm.exe وليس الملفات التنفيذية نفسها وهذا هو الأساس الثابت عند تعديل Path لضمان عمل البرامج بشكل صحيح من أي مكان على النظام.
  6. وعليكم السلام ورحمة الله تعالى وبركاته، من الأفضل كتابة تعليقات تشرح الغرض والمنطق العام للكود وليس على كل سطر فالتعليقات التي تكرر الكود لها قيمة سلبية لأنها تضيف فوضى بصرية وتستغرق وقتا للكتابة والقراءة ويمكن أن تصبح قديمة. المبدأ الأساسي هو أن "الكود يخبرك كيف والتعليقات تخبرك لماذا" لذا يجب أن تركز التعليقات على شرح القرارات التصميمية والمنطق المعقد، بينما الكود المكتوب بوضوح يشرح نفسه بنفسه. أما التعليق على كل سطر يعتبر من الممارسات السيئة التي تم انتقادها من قبل العديد من المبرمجين لكن مع ذلك يمكنك التعليق عند الأسطر التي تحتاج تفصيلا أو ربما تكون مبهمة، لكن أنصحك بكتابة كود نظيف فقد لا تحتاج أصلا لعمل التعليقات.
  7. السلام عليكم ورحمة الله تعالى وبركاته، أنت تقصد إن كانت الأكاديمية ستوفر دورة في إدارة حسابات التواصل الاجتماعي أم لا؟ إن كان كذلك قصدك فأرجو في المرة القادمة توضيح سؤالك كي يتسنى للجميع فهمه وإجابتك بسرعة. بخصوص السؤال فحاليا لا توجد دورة بعينها يمكنك مراجعة دورات الأكاديمية من هنا: https://academy.hsoub.com/learn لكن يمكنك الاستعانة بهذه المقالة التي تتناول نفس الموضوع:
  8. وعليكم السلام ورحمة الله تعالى وبركاته، Code Golf هو نوع من المسابقات الترفيهية في البرمجة حيث يهدف المشاركون إلى كتابة أقصر برنامج أو جزء من الكود لحل مشكلة معينة ويشبه هذا المفهوم لعبة الجولف التقليدية حيث يسعى اللاعبون إلى إنهاء اللعبة بأقل عدد من الضربات. أما في جولف الكود يتم قياس الضربات بعدد الأحرف في الكود وكلما قل عدد الأحرف، كان أداء الكود أفضل أي كتابة كود يعمل بشكل صحيح، لكن باستخدام أقصر كود ممكن.
  9. وعليكم السلام ورحمة الله تعالى وبركاته، في بايثون المربعان ‎[ ]‎ يستخدمان للوصول إلى العنصر ذي الفهرس المعيّن داخل القائمة لا لاستخراج عمود من مصفوفة ثنائية الأبعاد. أي عندما تكتب ‎points[1] فأنت تطلب القائمة الموجودة في الموضع 1 مع العلم أن الترقيم يبدأ من ‎0‎ أي ‎[1, 4, 0] كما عرّفتها أنت بالضبط أمّا القيمة ‎[1, 4, -4]‎ التي تتوقّعها فهي ليست عنصرا واحدا في ‎points بل هي العناصر الثانية من كل سطر أي ‎1‎ من ‎[-3, 1, 2]‎ ثم ‎4‎ من ‎[1, 4, 0]‎ ثم ‎-4‎ من ‎[-1, -4, 5]‎ للحصول على هذا العمود ينبغي أن تمرَّ على الصفوف وتلتقط العنصر ذي الفهرس ‎1‎ في كل صف كالتالي: col1 = [row[1] for row in points] وهذا سيعيد: [1, 4, -4] والرجاء طرح سؤالك أسفل الدرس الذي واجهت فيه مشكلة إذا كان السؤال متعلقا بدرس من دروس الدورة التي اشتركت فيها فهنا نجيب فقط على الأسئلة العامة، ستجد أسفل الدرس صندوقا للتعليقات كما الذي هنا يمكنك نقل سؤالك هناك.
  10. السلام عليكم ورحمة الله تعالى وبركاته، العديد من العوامل تدخل في هذا السياق ولكن كملحوظة أولية من الأفضل اتباع الارشادات الخاصة بمنصة مستقل نفسها بدءا من الملف الشخصي والصورة الشخصية وكيفية عمل البورتفوليو الخاص بك وكيفية التقديم للمشاريع، وسأرفقك لك مصادر رسمية ستساعدك على ذلك مثلا لاختيار أمثل للصورة الشخصية راجع من هنا: ومن هنا: واتبع الارشادات الموجودة هنا: البدء للمستقلين ويمكنك مراجعة الأجوبة على الأسئلة السابقة المشابهة لسؤالك من هنا: ومن هنا:
  11. وعليكم السلام ورحمة الله تعالى وبركاته، البرمجة الإجرائية (Procedural Programming) هي نمط برمجة يعتمد على تقسيم البرنامج إلى مجموعة من الإجراءات أو الدوال (Functions) التي تنفذ سلسلة من الأوامر خطوة بخطوة. وفي هذا النمط يكون التركيز على "ما يجب فعله" من خلال تسلسل منطقي من التعليمات ويتم تنظيم الكود بشكل هرمي حيث تبدأ التعليمات من الأعلى للأسفل ويستخدم التفرع مثل if-else والحلقات مثل for وwhile لتوجيه سير التنفيذ وأما البيانات عادة فتكون منفصلة عن الدوال ولا يتم ربطها مع السلوك كما في البرمجة الكائنية. ومن أبرز خصائص البرمجة الإجرائية سهولة التتبع، وإعادة استخدام الكود عبر الدوال، ولكنها تعاني من صعوبة الصيانة مع كبر حجم المشروع لأن التغييرات قد تؤثر في أجزاء متعددة من البرنامج وتستخدم في لغات مثل C، Pascal، وBASIC وهي تعتبر الأساس الذي بنيت عليه مفاهيم برمجية أخرى مثل البرمجة الكائنية (OOP) كما أنها مناسبة للمشاريع الصغيرة والمتوسطة التي لا تحتاج إلى تصميم معقد أو نماذج بيانات متشابكة.
  12. السلام عليكم ورحمة الله تعالى وبركاته، فيديوهات الدورة تعمل عندي بشكل عادي، أرجو منك استعمال متصفح آخر ثم المحاولة مرة أخرى. على الأرجح المشكلة بسبب إضافة معينة تم تثبيتها يمكنك أيضا تعطيلها كاملة ثم إعادة التفعيل واحدة تلو الأخرى حتى معرفة الإضافة التي تسببت بالخطأ.
  13. السلام عليكم ورحمة الله تعالى وبركاته، على موسوعة حسوب يتم إضافة مكتبات ولغات وتوثيقات جديدة في كل مرة كلما تطلب الأمر ذلك، وقد يتم إضافتها مستقبلا. يمكنك إيجاد ما تحتاجه من هنا:
  14. السلام عليكم ورحمة الله تعالى وبركاته، أعتقد أنه من المستبعد جدا أن يتم استبدال Node.js ب Bun في المستقبل القريب أو البعيد بشكل كامل. رغم أن Bun مصمم ليكون بديلا أسرع وأكثر حداثة ل Node.js وهو يدعم معظم APIs والميزات نفسها، إلا أن Node.js راسخ جدا في النظام البيئي للتطوير مع مجتمع ضخم وآلاف المكتبات والشركات التي تعتمد عليه منذ أكثر من 15 سنة. أما التوصية الحالية هي استخدام Bun للمشاريع الجديدة التي تحتاج أداء عالي، والبقاء مع Node.js للتطبيقات القديمة والمؤسسية ومن المرجح أن يكون هناك تعايش بين الاثنين، حيث سيختار المطورون الأداة المناسبة حسب احتياجات مشروعهم، وليس استبدال كامل.
  15. وعليكم السلام ورحمة الله تعالى وبركاته، نعم يوجد فرق جوهري بينهما فنمذجة الكائنات هي عملية تحليل وتصميم تهدف لفهم المشكلة وتمثيلها من خلال تحديد الكائنات والعلاقات بينها قبل البرمجة، وتشمل أنشطة مثل تحليل المتطلبات ورسم المخططات (UML) وتحديد الخصائص والسلوكيات المطلوبة. أما البرمجة كائنية التوجه فهي منهجية البرمجة الفعلية التي تطبق مفاهيم الكائنات (Classes, Objects, Inheritance, Encapsulation, Polymorphism) باستخدام لغات برمجة محددة مثل Java أو C++. وببساطة فالنمذجة هي مرحلة التخطيط والتصميم التي تسبق البرمجة، بينما البرمجة كائنية التوجه هي تنفيذ هذا التصميم برمجيا فالنمذجة تجيب على "ماذا نحتاج؟" و"كيف نصمم؟"، بينما البرمجة تجيب على "كيف ننفذ؟".
  16. السلام عليكم ورحمة الله تعالى وبركاته، لا فليس من الضروري أن تكتب \ في نهاية الوسم ففي HTML الوسوم تغلق بطريقتين فلدينا وسوم ذات نهاية مثل: <div>محتوى هنا</div> وسوم بدون محتوى (Self-closing): <link rel="stylesheet" href="style.css"> يمكن كتابتها بدون / في النهاية وهذا صحيح تماما في HTML5 أما في XHTML أو HTML القديم فتكتب: <link rel="stylesheet" href="style.css" />
  17. السلام عليكم ورحمة الله تعالى وبركاته، هذا الشعور طبيعي ولا داعي للقلق سأقترح عليك متابعة الإجابات التالية: وللاستفادة من محتوى الدورات بأقصى استفادة تابع الإجابات التالية:
  18. السلام عليكم ورحمة الله تعالى وبركاته، نعم من الأحسن اتباع الترتيب المعمول به في الدورة كما هو فترتيب الدروس والمسارات ليس عشوائيا. ولكن يمكنك اختيار أي مسار تفضّله في حال كان لديك خبرة مسبقة بمجال معيّن أما إن كنت مبتدئا فمن الأفضل البدء من أول مسار ثم إنهائه بعدها الانتقال إلى المسار الذي بعده وذلك مع تطبيق جميع التطبيقات العملية المتواجدة فيه وهذا لتحقيق أقصى استفادة ممكنة من الدورة.
  19. السلام عليكم ورحمة الله وبركاته، بالنسبة لخاصية تنزيل الفيديوهات فهي غير متاحة في الأكاديمية وهذا تفاديا لقرصنة المحتوى وإعادة استعماله. في حال كنت تواجه مشكلة في مشاهدة الفيديوهات يمكنك توقيف الفيديو لبعض الوقت حتى يتم تحميله ثم مشاهدته. يمكنك دوما التحكم في جودة الفيديو من خلال وضعه في جودة متوسطة كي لا يستهلك الكثير من الوقت لتحميله. يمكنك الاطلاع عن السبب أكثر من هنا:
  20. السلام عليكم ورحمة الله تعالى وبركاته، بداية فإن أكاديمية حسوب لا توفر ملخصات للدروس ونحن في الأكاديمية نشجّع الطلبة على إعداد ملخصاتهم الخاصة بأنفسهم لما فيه من فائدة كبيرة تعود على التحصيل والفهم وترسيخ المفاهيم التي نتطرق إليها في الدروس والمسارات. وعوضا من ذلك فإنّ الأكاديمية لديها موسوعة خاصة تُعنى بجميع التوثيقات باللغة العربية إذ تسهّل على الطالب الرجوع إليها في أيّ وقت وحين وهي موسوعة ويكي حسوب ويمكنك الوصول إليها من هنا: موسوعة حسوب والتوثيق الرسمي لبايثون كما أنه توجد العديد من المقالات التي تتناول لغة بايثون من الأساسيات إلى المواضيع المتقدمة منها ويمكنك تصفحها من هنا: https://academy.hsoub.com/programming/python/ https://academy.hsoub.com/python/ كما أنصحك بالتطبيق العملي المستمر فإعداد الملخصات قد يكون مفيدا في البداية لترسيخ الأساسيات لكن فيما بعد فكلما أنجزت مشاريع وتطبيقات عملية أكثر كلما زاد مستواك في البرمجة، فنحن لسنا بحاجة إلى الحفظ بتاتا فهو تحصيل حاصل نتيجة العمل المستمر، فكلّ شيء يمكن الرجوع إليه ضمن التوثيقات الرسمية.
  21. تحياتي لك، أي دورة تقصد بالتحديد؟ وعلى كلّ حال فإنّ جميع دورات أكاديمية حسوب متاحة لمشتركيها مدى الحياة، كما أنّ فريق إعداد الدورات يقوم بتحديث مسارات الدورات عند اقتضاء ذلك دوريا ممّا يجعلها متاحة ومناسبة للطلبة في أي وقت.
  22. وعليكم السلام ورحمة الله تعالى وبركاته، في هذه الشيفرة والتي هي عبارة عن تطبيق بسيط لقائمة مهام (To Do List) ففي البداية يتم استيراد useState لإدارة حالة القائمة، وuseRef لإنشاء مرجع لحقل الإدخال هنا: import React, { useRef, useState } from 'react'; وداخل دالة App نعرّف حالة todos التي تبدأ كمصفوفة فارغة: const [todos , setTodos] = useState([]); وتعرّف refInp باستخدام useRef() لحفظ مرجع مباشر لحقل الإدخال: const refInp = useRef(); أما الدالة handelAddTodos فتستخدم عند الضغط على زر "Add" بحيث تقوم هذه الدالة بقراءة النص المدخل عبر المرجع: const textInp = refInp.current.value; ثم تضيفه إلى قائمة المهام باستخدام: setTodos([...todos, textInp]); وبعدها تقوم بمسح الإدخال بإسناد قيمة فارغة له: refInp.current.value = ""; في حين في الجزء المرئي (JSX) يتم عرض العنوان: <h2>To Do List</h2> ثم تعرض قائمة المهام باستخدام map() لإظهار كل مهمة في عنصر <li>: <ul> {todos.map((item) => <li>{item}</li>)} </ul> بعد ذلك يوجد حقل الإدخال المرتبط بالمرجع: <input ref={refInp} placeholder="Enter item..." /> في النهاية الزر الذي يستدعي دالة الإضافة عند الضغط عليه: <button onClick={handelAddTodos}>Add</button> وفائدة useRef هنا أنه يسمح بالوصول إلى قيمة حقل الإدخال دون الحاجة لتعريف حالة إضافية.
  23. useRef هو أحد الخطافات (Hooks) في React ونحن نستخدمه لإنشاء مرجع (ref) يمكنه تخزين قيمة لا تتغير عبر إعادة التصيير (re-renders) دون أن تؤدي هذه القيمة إلى إعادة تصيير جديدة عند تغيّرها. فعندما تستدعي useRef(initialValue) سيقوم React بإنشاء كائن يسمى ref يحتوي على خاصية واحدة اسمها current، ويتم تعيين القيمة الابتدائية initialValue إلى ref.current بحيث أن هذا الكائن ref سيكون ثابتا طوال عمر المكوّن، مما يعني أنه لن يتغير بين كل إعادة تصيير، بينما يمكنك تحديث ref.current يدويا بأي قيمة تريد. الكائن ref يكون شكله كالتالي: { current: initialValue } هذه البساطة تجعله مفيدا جدا لتخزين أي شيء لا يؤثر على واجهة المستخدم بشكل مباشر مثل مرجع لعنصر DOM فعند استخدام: ref={myRef} في JSX أو تخزين مؤقت لقيم مثل مؤقت زمني setTimeout، أو الحالة السابقة لمتغيّر معيّن، أو عدد النقرات وغير ذلك. const myRef = useRef(0); myRef.current += 1; مثلا هنا نقوم بتخزين عدّاد في myRef.current، وسيتذكر هذا العدّاد القيمة بين كل إعادة تصيير، دون أن يسبب إعادة تصيير جديدة أما عند ربطه بعنصر DOM: const inputRef = useRef(null); <input ref={inputRef} /> ف inputRef.current في هذه الحالة سيشير إلى عنصر <input> في DOM بعد التصيير، ويمكنك مثلا استدعاء: inputRef.current.focus() لتركيز المؤشر في الحقل ليكون ref.current هو المكان الذي يخزّن فيه المرجع إلى العنصر أو القيمة.
  24. السلام عليكم ورحمة الله تعالى وبركاته، var و let هما طريقتان لتعريف المتغيرات في JavaScript، لكن الفرق بينهما أن var له نطاق دالة (function scope)، أي أنه متاح في كامل الدالة التي عُرّف فيها، بينما let له نطاق كتلة (block scope)، أي أنه متاح فقط داخل { } التي عرّف فيها. كما أنه يتم رفع var إلى أعلى الكود ويأخذ قيمة undefined مؤقتا، أما let فيُرفع لكن لا يمكن استخدامه قبل تعريفه، مما يقلل من الأخطاء. كما أنه يمكن إعادة تعريف متغير var في نفس النطاق، أما let فلا يمكن ذلك و let أكثر أمانًا وحداثة، ويُفضل استخدامها بدلا من var في معظم الحالات، يمكنك الاطلاع أكثر من خلال الإجابات الآتية: https://academy.hsoub.com/questions/21250-الفرق-بين-let-و-var-في-جافا-سكريبت/ و: https://academy.hsoub.com/questions/23436-استفسار-عن-لغة-جافاسكربت-ماهو-الفرق-بين-let-و-var-و-const/
  25. ليس من الأفضل دائما تعويض القيم المفقودة، كما أنه ليس من الصحيح دائما حذفها. لأن الخيار الأفضل يعتمد على طبيعة البيانات، كمية القيم المفقودة، وأسباب فقدانها فإذا كانت نسبة القيم المفقودة مرتفعة في عمود معين مثلا لنقل أكثر من 40%-50% فقد يكون من الأفضل حذف هذا العمود لأنه قد لا يضيف قيمة تحليلية حقيقية. أما إذا كانت نسبة القيم المفقودة قليلة، فغالبا ما يكون من الأفضل تعويضها، وذلك باستخدام أساليب مثل المتوسط mean، الوسيط median، الأكثر تكرارا mode أو نماذج أكثر تقدما مثل KNN Imputer أو التوقع بالنماذج. لكن في بعض الحالات، القيم المفقودة قد تكون ذات دلالة بحد ذاتها، فمجرد كونها مفقودة يحمل معنى معين، وفي هذه الحالة يمكن إنشاء عمود إضافي يشير إلى كون القيمة مفقودة بدلا من حذفها أو تعويضها. أما بخصوص الفرق بين بيانات التدريب وبيانات الاختبار فنعم يوجد فرق مهم أولا يجب تعويض القيم المفقودة في بيانات الاختبار باستخدام نفس القيم أو الاستراتيجية المستخلصة من بيانات التدريب فقط، لضمان عدم تسريب المعلومات (data leakage) مثلا إذا عوّضت القيم المفقودة في التدريب باستخدام المتوسط، يجب أن تستخدم نفس هذا المتوسط أي المحسوب من التدريب لتعويض القيم في الاختبار، وليس أن تحسب متوسطا جديدا للاختبار.
×
×
  • أضف...