تكنولوجيا
أخر الأخبار

معلومات في صورة أسئلة سريعة للشباب الصغير جوا Machine Learning

معلومات في صورة أسئلة سريعة للشباب الصغير جوا Machine Learning

 

بقلم: أ.د أحمد النجار

 

سؤال مهم جدًا..

 إيه مشكلة 

Split / cross validation of training data

الإجابة..

Split vs Cross Validation

 1. Split (Train/Test Split)

 • هنا بتقسم الـ dataset مرة واحدة إلى جزئين:

 • Training set (مثلاً 80%).

 • Testing set (مثلاً 20%).

 • العيب الأساسي:

النتيجة ممكن تتأثر بالصدفة (يعني لو البيانات متوزعة بشكل غير متوازن، الأداء ممكن يبان أعلى أو أقل من الحقيقي).

 

     2. Cross Validation (CV)

 • أشهر نوع هو K-Fold Cross Validation.

 • بتقسم البيانات إلى K أجزاء (Folds)، وكل مرة:

 • جزء للتست (Validation).

 • باقي الأجزاء للتدريب.

 • تكرر العملية K مرات، وكل مرة بتاخد Fold مختلف كـ test.

 • في الآخر تاخد متوسط النتائج → ده بيقلل الانحياز (Bias) وبيخلي التقييم أدق.

 

المشكلة في الخلط بين Split وCross Validation

 • بعض الناس بتفتكر إن مجرد split واحد كفاية → وده خطر، لأنه ممكن يدي صورة مضللة عن قوة الموديل.

 • في حين إن Cross Validation بياخد كل البيانات تقريباً في التدريب والاختبار بشكل عادل.

 • كمان لو حجم البيانات صغير → Cross Validation أفضل بكتير من مجرد split واحد.

 • لكن لو البيانات كبيرة جداً → ممكن تستخدم Split عشان السرعة وتوفير الوقت.

 

الخلاصة..

 • Train/Test Split → سريع وبسيط لكن مش دايمًا موثوق.

 • Cross Validation → أدق لكنه أبطأ (خصوصًا مع موديلات Deep Learning).

====================

سؤال آخر مهم.. 

 

هل في ال training – validation ممكن يحصل مشاكل؟  يعني هل في ال validation بيشوف الداتا بتاعت ال training؟

الإجابة..

السوال دا بنسميه لبّ مشكلة الـ data leakage اللي ناس كتير بتغلط فيها 👇

الفكرة الأساسية:

 • Training set → الموديل بيتعلم منه.

 • Validation set → بنستخدمه عشان نقيّم الموديل ونشوف أداءه قبل ما نجربه على test data.

 

المشكلة المحتملة: Leakage

 • لو حصل أي تداخل بين الـ training وvalidation (يعني نفس البيانات أو features مشتقة من نفس السجلات ظهرت في الإثنين)، الموديل هيبان إنه شاطر جدًا على الـ validation … لكن في الحقيقة ده غش (overfitting / leakage).

 

أمثلة عملية للمشاكل:

 1. تسريب البيانات:

 • لو عملت split بطريقة غلط (مثلاً shuffle=False على بيانات time series).

 • أو لو فيه مريض بياناته ظهرت في train وفي validation (في medical datasets).

 2. Preprocessing leakage:

 • لو عملت Normalization / Scaling / Feature Engineering على كل البيانات قبل ما تقسم.

 • الصح → تعملها بعد التقسيم، بحيث تتعلم الـ scaler من الـ training فقط وتطبقه على validation.

 3. Overfitting على الـ validation:

 • ساعات الباحث يفضل يعدّل الموديل (hyperparameters) لحد ما يجيب أفضل نتيجة على validation.

 • هنا validation يتحول شبه training → والنتيجة مش هتبقى معبرة عن أداء الموديل الحقيقي.

 • الحل → استخدام Test set مستقل أو Nested Cross Validation.

 

الخلاصة..

 • في الوضع الطبيعي: الـ validation ما يشوفش أي حاجة من training data.

 • أي overlap أو تسريب = مشكلة خطيرة في التقييم.

 • لازم دايمًا تتأكد إن:

 1. الـ split مظبوط (train ≠ validation).

 2. أي preprocessing يتعمل جوه الـ training pipeline فقط.

 3. تحتفظ بـ test set نهائي ما تلمسه غير مرة واحدة بعد ما تستقر على الموديل.

==================

سؤال آخر..

 

طيب لو بشتغل على object دا هينفع؟

الإجابة..

 

لو قصدك على حالة object detection مثلًا:

 • آه، نفس القواعد تنطبق: لازم تعمل train/val split مظبوط، بحيث مايبقاش فيه صور مشتركة بين training و validation.

 • كمان لو فيه صور متسلسلة (frames من فيديو مثلاً)، متحطش جزء منها في train وجزء في validation → ده يسبب leakage لأن الموديل هيشوف تقريبًا نفس المعلومات.

 

ولو قصدك على Dataset object في بايثون:

 • أيوه بينفع جدًا، سواء بتستخدم scikit-learn, PyTorch, أو TensorFlow.

 • كلهم بيدوك إمكانية تقسيم الـ dataset إلى train / validation / test من خلال object أو dataloader، مع ضمان عدم التداخل.

 

 

د. أحمد النجار

أستاذ ورئيس قسم علوم الحاسب، كلية الحاسبات والذكاء الاصطناعي، جامعة بني سويف. نائب مدير مكتب التصنيف الدولى، جامعة بني سويف مؤسس ورئيس المجموعة البحثية الابتكارية SIGR كاتب صحفي بجريدة العدد الأول
زر الذهاب إلى الأعلى
إغلاق

عزيزي العميل انت تستخدم مانع الاعلانات

الرجاء اغلاق مانع الاعلانات لمشاهدة المحتوي