فريق أندرو نغ ارتكب خطأ كبيرا في ورقة بحثية. وحدث ذلك بسبب تقسيم البيانات بشكل عشوائي. إليك بالضبط ما حدث (مع الحل):
من الشائع توليد مجموعات القطار والتحقق باستخدام التقسيم العشوائي. ومع ذلك، في كثير من الحالات، قد يكون ذلك قاتلا لبناء النماذج. فكر في بناء نموذج يولد تعليقات توضيحية للصور. نظرا للطبيعة الجوهرية للغة، يمكن أن يكون لكل صورة العديد من التعليقات التوضيحية المختلفة. - الصورة-1 → الترجمة-1، الترجمة-2، الترجمة-3، إلخ. - الصورة-2 → الترجمة-1، الترجمة-2، الترجمة-3، إلخ. انظر إلى هذا 👇
إذا استخدمنا التقسيم العشوائي ، فستكون نفس نقطة البيانات (الصورة) متاحة في مجموعات القطار والتحقق من الصحة. نتيجة لذلك ، ينتهي بنا الأمر بتقييم النموذج في الحالات التي تم تدريبه عليها. هذا مثال على تسرب البيانات (يسمى أيضا تسرب المجموعة) ، مما يؤدي إلى الإفراط في التجهيز!
حدث نفس الشيء في ورقة أندرو نغ، حيث أعدوا مجموعة بيانات طبية للكشف عن الالتهاب الرئوي. - إجمالي الصور = 112 ألف - إجمالي المرضى = 30 ألف وبسبب التقسيم العشوائي، كانت صور نفس المريض متاحة في مجموعتي التدريب والتحقق. هذا أدى إلى تسرب البيانات، وبدت درجات التحقق أفضل بكثير مما ينبغي. هذه هي ورقتهم👇 الأولى
تقسيم المجموعات حل هذه المشكلة. هناك خطوتان: 1) تجميع جميع حالات التدريب التي تتوافق مع صورة واحدة. 2) بعد التجميع، يجب تعيين المجموعة بأكملها (جميع أمثلة الصورة الواحدة) عشوائيا إلى القطار أو مجموعة التحقق. هذا سيمنع تسرب المجموعات.
إذا استخدمت Sklearn، فإن GroupShuffleSplit يطبق هذه الفكرة. كمثال، لنفترض أن لدينا مجموعة البيانات التالية: - X1 و X2 هما الميزان. - y هو المتغير المستهدف. - المجموعة ترمز إلى معايير التجميع. انظر إلى هذا 👇
أولا، نستورد GroupShuffleSplit من sklearn ونجسد الكائن. بعد ذلك، تتيح طريقة split() لهذا الكائن إجراء تقسيم المجموعات. يعيد مولدا، ويمكننا فككه للحصول على الناتج التالي: - نقاط البيانات في المجموعتين "A" و"C" تكون معا في مجموعة التدريب. - نقاط البيانات في المجموعة "B" تكون معا في مجموعة التحقق/الاختبار. انظر إلى هذا 👇
بعد بضعة أيام، قام فريق أندرو نغ بتحديث الورقة بعد استخدام نفس استراتيجية تقسيم المجموعات لضمان عدم وجود نفس المرضى في مجموعتي التدريب والتحقق. 👉 الآني لك: هل واجهت هذه المشكلة من قبل؟
‏‎17.66‏K