تخيل أننا ندرب شبكة عصبية باستخدام بيانات، حيث يمثل كل سجل كيانًا أكبر (مثل عميل)، ويمثل كل سجل فرعي أجزاءً أصغر مرتبطة به (مثل معاملات العميل الفردية).
الآن، لدى بعض العملاء 3 معاملات، ولدى آخرين 10 معاملات أو أكثر. عند تقسيم البيانات إلى مجموعات تدريب واختبار، يمكننا:
التقسيم حسب السجلات الفرعية (المعاملات)، مما يعني أن معاملات العميل نفسه قد تظهر في كل من مجموعتي التدريب والاختبار.
التقسيم حسب السجلات (العملاء)، مما يعني أن جميع معاملات العميل تظهر معًا إما في التدريب أو الاختبار، ولكن ليس في كليهما.
مثال آخر: إذا كنا نتنبأ بشدة الزلازل ولدينا 1000 زلزال، ولكل زلزال 3 سجلات على الأقل (سجلها مراقبون مختلفون)، فهل يجب علينا تقسيم البيانات بناءً على 1000 زلزال بحيث يكون (800 * 3 على الأقل) منها تدريبًا و200 * 3 على الأقل) اختبارًا؟ في هذه الحالة، نعلم أن 80% من بيانات الزلازل الأرضية مخصصة للتدريب، ولكن هذا قد يجعل عدد السجلات المُدرَّبة أكثر أو أقل من 80% من إجمالي السجلات. أم يجب علينا التقسيم بناءً على إجمالي عدد السجلات؟
ما يقلقني هو تسرب البيانات:
إذا رأى النموذج بعض معاملات العميل/الزلزال أثناء التدريب، ثم تم اختباره على معاملات أخرى من نفس العميل/الزلزال، فإنه يكون قد "رأى" بالفعل جزءًا من بيانات الاختبار بشكل غير مباشر - حتى لو اختلفت المعاملات المحددة. أم ان عملية التدريب مختلفة عن ذلك؟
إذن، السؤال هو:
عند تدريب نموذج على بيانات هرمية (سجلات تحتوي على سجلات فرعية)، هل يجب إجراء تقسيم التدريب/الاختبار على مستوى السجل أم على مستوى السجل الفرعي لتجنب تلوث البيانات أو تسربها؟
السؤال
عبدالرحمن_
تخيل أننا ندرب شبكة عصبية باستخدام بيانات، حيث يمثل كل سجل كيانًا أكبر (مثل عميل)، ويمثل كل سجل فرعي أجزاءً أصغر مرتبطة به (مثل معاملات العميل الفردية).
الآن، لدى بعض العملاء 3 معاملات، ولدى آخرين 10 معاملات أو أكثر. عند تقسيم البيانات إلى مجموعات تدريب واختبار، يمكننا:
التقسيم حسب السجلات الفرعية (المعاملات)، مما يعني أن معاملات العميل نفسه قد تظهر في كل من مجموعتي التدريب والاختبار.
التقسيم حسب السجلات (العملاء)، مما يعني أن جميع معاملات العميل تظهر معًا إما في التدريب أو الاختبار، ولكن ليس في كليهما.
مثال آخر: إذا كنا نتنبأ بشدة الزلازل ولدينا 1000 زلزال، ولكل زلزال 3 سجلات على الأقل (سجلها مراقبون مختلفون)، فهل يجب علينا تقسيم البيانات بناءً على 1000 زلزال بحيث يكون (800 * 3 على الأقل) منها تدريبًا و200 * 3 على الأقل) اختبارًا؟ في هذه الحالة، نعلم أن 80% من بيانات الزلازل الأرضية مخصصة للتدريب، ولكن هذا قد يجعل عدد السجلات المُدرَّبة أكثر أو أقل من 80% من إجمالي السجلات. أم يجب علينا التقسيم بناءً على إجمالي عدد السجلات؟
ما يقلقني هو تسرب البيانات:
إذا رأى النموذج بعض معاملات العميل/الزلزال أثناء التدريب، ثم تم اختباره على معاملات أخرى من نفس العميل/الزلزال، فإنه يكون قد "رأى" بالفعل جزءًا من بيانات الاختبار بشكل غير مباشر - حتى لو اختلفت المعاملات المحددة. أم ان عملية التدريب مختلفة عن ذلك؟
إذن، السؤال هو:
عند تدريب نموذج على بيانات هرمية (سجلات تحتوي على سجلات فرعية)، هل يجب إجراء تقسيم التدريب/الاختبار على مستوى السجل أم على مستوى السجل الفرعي لتجنب تلوث البيانات أو تسربها؟
تم التعديل في بواسطة عبدالرحمن_3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.