يمكن تخصيص refit callable لاختيار النموذج في GridSearchCV بقاعدة تعيد فهرس صف من cv_results_، بدل الاكتفاء بأعلى درجة منفردة. [1] سنعلن شروط اختيار وصفوفًا تعليمية ثم نحسب الصف المختار، دون بحث فعلي أو توقيت نموذج أو ادعاء أفضلية خارج القاعدة.
الخلاصة السريعة
لا؛ حين تعلن قاعدة متعددة الشروط، يعود القرار إلى تلك القاعدة وفهرسها. وضح لماذا قبلت صفًا واستبعدت آخر، ولا تختزل النتيجة في أكبر رقم.
- تسمح GridSearchCV بدالة refit تعيد best_index_ من cv_results_؛ يحدد الفهرس النموذج والمعاملات، ولا يتاح best_score_ معها. [1]
- في جدولنا تبدأ الصفوف من صفر؛ نفرض استرجاعًا لا يقل عن 0.8 وكلفة لا تتجاوز 4، فيستبعد الصف 0 رغم أن مقياسه الأول 0.95.
- مع وجود صف مقبول كما نفترض، يبقى الصفان 1 و 2 بمقياس أول 0.88؛ نختار أقل كلفة، فيفوز الصف 2 بكلفة 2، ثم نكسر أي تعادل تام بأصغر فهرس.
- اختيار الفهرس غير إعادة التدريب: refit يعيد تدريب الاختيار على مجموعة البيانات كلها. [1] قاعدة الجدول لا تثبت نجاح تلك الخطوة أو جودة لاحقة، ولم نشغلها.
ماذا تعيد الدالة المخصصة؟
يمكن أن تعيد refit دالةً تختار best_index_ اعتمادًا على cv_results_؛ تحدد best_estimator_ وbest_params_ بحسبه، بينما يغيب best_score_. [1]
نتعامل مع الفهرس كعنوان صف، لا قيمة درجة ولا اسم مقياس. إذا قررت قاعدة أن الصف رقم 2 هو المطلوب، لا تعيد 0.88 لأن تلك درجته. يلزم أن يكون ما أعادته مرتبطًا بالصف الذي يحمل إعدادات الاختيار.
والغياب المذكور لحقل أفضل درجة ليس خبرًا أن الصف لا يحمل أي مقاييس. قد تكون القاعدة تجمع قيودًا ومفاضلات لا تلخص في رقم واحد. لذلك نقرأ أعمدة الصف وسبب اختياره بدل ملء حقل غائب بمتوسط اخترعناه.
من يستبعد قبل ترتيب الدرجات؟
نؤلف جدولًا كاملًا من ثلاثة صفوف، وفهارسه صفر وواحد واثنان. الأعمدة مقياس أول يفضل الأكبر، واسترجاع، وكلفة تعليمية تفضل الأصغر. الكلفة مجرد وحدات معلنة، لا ثواني قيست على جهاز.
صف 0: المقياس 0.95 والاسترجاع 0.7 والكلفة 3. صف 1: المقياس 0.88 والاسترجاع 0.9 والكلفة 4. صف 2: المقياس 0.88 والاسترجاع 0.85 والكلفة 2. نعلن قبل المفاضلة شرط استرجاع لا يقل عن 0.8 وكلفة لا تزيد على 4.
يخفق الصف 0 في شرط الاسترجاع رغم امتلاكه أعلى مقياس أول. الصفان 1 و 2 يحققان الشرطين، بما في ذلك الكلفة 4 عند الحد. لا نعدل العتبة بعد رؤية الجدول لنجعل أكبر درجة مقبولة؛ القاعدة جزء من تعريف تمريننا.
كيف يختار التعادل صفًا واحدًا؟
من الصفوف المقبولة نريد أكبر مقياس أول، ثم أقل كلفة عند تعادله، ثم أصغر فهرس إذا بقي التعادل. في جدولنا يتساوى المقياس الأول للصفين 1 و 2 عند 0.88. الكلفتان 4 و 2، لذلك نختار فهرس 2.
لم يصل هذا المثال إلى شرط كسر التعادل الأخير، لكن ذكره يمنع قاعدة ناقصة إذا تكررت الكلفة لاحقًا. كذلك نعلن أن مسارنا يفترض وجود صف مقبول؛ إذا لم يوجد، نحتاج قرارًا منفصلًا عن المتابعة أو الإخفاق، ولا ندعي أن العقد يختلق فائزًا يحقق شروطًا مستحيلة.
اختيارنا ليس توصية بأن أقل كلفة تتفوق دائمًا أو أن 0.8 عتبة مناسبة لكل مهمة. بدل حفظ رقم نهائي وحده، نكتب لكل صف سبب الاستبعاد أو ترتيب المفاضلة. هذا التفسير يجعل تغيير القاعدة ظاهرًا إذا احتجناه لاحقًا.
ما الذي يأتي بعد الفهرس؟
refit يعيد تدريب المرشح المختار على البيانات كلها وفق وصف العملية. [1]
فصل المرحلتين ضروري: جدول مفاضلة وقرار فهرس من جهة، ونموذج أعيد تدريبه فعلًا من جهة أخرى. لم تنفذ الدالة أو إعادة التدريب في المقال، ولا نعرف أثرها على بيانات جديدة أو هل نجحت في بيئة محددة.
نقترح حفظ القاعدة والمدخل الكامل لها والفهرس الناتج ثم هوية الحالة التي أنتجتها إعادة التدريب إن تمت. غياب best_score_ مع الدالة ليس سببًا لإخفاء الأعمدة أو كتابة أعلى مقياس لصف مستبعد بوصفه نتيجة المختار. تبقى جودة الاختيار اللاحقة سؤال تقييم مستقلًا عن صحة تطبيق القاعدة على ورقتنا.
المصادر ومتابعة القراءة
- scikit-learn: GridSearchCV callable refit (يفتح في نافذة جديدة)scikit-learn.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
