مشكلة
النموذج الذي يتنبأ دائمًا بالحق لديه درجة استدعاء مثالية. من خلال السماح لـ automl بالتحسين للتذكر ، فإننا نشجعه على إنتاج نموذج تافه.
مرجع مفيد هنا .
عرض
حذف هدف الاستدعاء.
بشكل عام ، يجب أن نحصر مجموعة أهداف التشغيل الآلي لتكون تلك التي نشعر بأنها ذات قيمة ، وحيث يؤدي تحسين هذه الأهداف إلى إنتاج نماذج جيدة.
أعتقد أنه يجب علينا أيضًا إضافة المزيد من أهداف التصنيف الثنائي. # 457 يتضمن اقتراحًا قد يكون جيدًا للفصول غير المتوازنة.
أسئلة
* هل يمكن تقديم حجة مماثلة من أجل الدقة؟ أم أن هناك قيمة في تحسين ذلك؟
* هل يمكن تقديم حجة مماثلة للدقة (# 294)؟
تضمين التغريدة
أعتقد أن الدقة والدقة جيدة بمعنى أنها لن تمنحك نموذجًا تافهًا.
لا نريد بالضرورة حذف الاستدعاء كهدف ، لا ينبغي فقط تحسينه في البحث التلقائي. على سبيل المثال ، قد أرغب في التحسين لـ f1 ، ولكن بعد ذلك أرى درجة الاستدعاء الخاصة بي بجانبها
@ kmax12 نعم ، حسنًا ، لا نريد حذف الكود الذي يحسب الاسترجاع ، ونريد الاستمرار في دعم استدعاء الحوسبة كدرجة على خط الأنابيب ، لكننا نريد عدم السماح به كهدف تحسين مدعوم في automl.
هذا يذكرني بالمناقشة الجارية حول أساليب التآمر / معلومات التصنيف الثنائي لـ ROC ومصفوفة الارتباك (# 427 ، # 365). هذه ليست مقاييس يمكننا تحسينها في automl ، وهي أيضًا ليست درجات ذات رقم واحد ، ولكن بموجب واجهة برمجة التطبيقات الخاصة بنا ، كانت أسهل طريقة لتحديدها هي إضافتها كمثيلات ObjectiveBase
.
لدينا حاليًا عدد من الأشياء التي يمكن حسابها باستخدام خطوط الأنابيب:
أعتقد أننا حتى الآن نحاول استخدام ObjectiveBase
لتمثيل 2 و 3 و 4. بمعنى آخر ، نحن نفتقد واجهة برمجة تطبيقات واضحة لتحديد طرق التسجيل وطرق التخطيط ، منفصلة عن عملية التشغيل التلقائي .
أعتقد أن الخطوة التالية هنا يجب أن تكون تصميم واجهات برمجة التطبيقات تلك. يبدو أنني قدمت ذلك بالفعل كـ # 392. سوف أقوم بتحديث هذه التذكرة ليتم حظرها على ذلك.
بالنسبة إلى إعادة صياغة واجهة برمجة التطبيقات للأهداف في الوقت الحالي ، قمنا بنقل ROC و Confusion Matrix إلى PlotMetrics
بدلاً من ذلك (تم إجراء تصميم أقل في هذا ، وكانت هذه هي الطريقة الأسهل لفصل هذين الهدفين عن بقية الأهداف بدون كسر الأشياء). لقد أضفنا أيضًا can_optimize_threshold
كسمة لـ BinaryClassificationObjective
، لذلك إذا تم استدعاء fit () بهدف مع can_optimize_threshold=True
، فإننا نقوم بالتحسين لهذا الهدف ، وإلا فإننا نقوم بالتحسين من أجل دقة. أفكار حول هذا وكيف يمكن أن يتوافق هذا مع بعض الأسئلة المطروحة هنا؟ هل سيكون من غير الواضح ما إذا كان المستخدم يسمى fit
عند الاستدعاء ولكن بدلاً من ذلك قمنا بتحسين الدقة بدلاً من ذلك؟
@ angela97lin نعم ، أعتقد أن إخراج ROC / الارتباك من ObjectiveBase
كان خطوة إيجابية! أعتقد أن رقم 392 يجب أن يتتبع المضي قدمًا. دعنا نواصل المحادثة حول كيفية تحديث API على # 392 بدلاً من ذلك. بهذه الطريقة ، يمكن لهذه المشكلة فقط تتبع استدعاء التحديث بمجرد اتخاذ قرار بشأن كيفية التعامل مع هذه الأشياء بشكل عام.
أعتقد أيضًا أن تحسين عتبة التصنيف الثنائي هو موضوع منفصل ، والحمد لله أن عملك الجاري في # 346 يتعامل مع 100٪!
تلخيص المناقشة مع eccabay و jeremyliweishih سابقًا: خيارات دعم هذا هي:
objectives/utils.py
OPTIONS
، وتأكد من عدم السماح بهذه الأهداف في automl.
التعليق الأكثر فائدة
أعتقد أن الدقة والدقة جيدة بمعنى أنها لن تمنحك نموذجًا تافهًا.
لا نريد بالضرورة حذف الاستدعاء كهدف ، لا ينبغي فقط تحسينه في البحث التلقائي. على سبيل المثال ، قد أرغب في التحسين لـ f1 ، ولكن بعد ذلك أرى درجة الاستدعاء الخاصة بي بجانبها