Evalml: احصل على الملاءمة التلقائية لأفضل خط أنابيب على بيانات التدريب بالكامل

تم إنشاؤها على ١١ ديسمبر ٢٠٢٠  ·  3تعليقات  ·  مصدر: alteryx/evalml

خلفية
اليوم من أجل الحصول على خط أنابيب مدرب من automl ، تحتاج إلى الاتصال بـ fit على خط الأنابيب ، لأن automl يقوم دائمًا بإرجاع نسخ غير مدربة من خط الأنابيب:

automl.search(X_train, y_train)
best_pipeline = automl.best_pipeline
best_pipeline.fit(X_train, y_train)
best_pipeline.score(X_test, y_test, objectives=['MSE'])
pipeline = automl.get_pipeline(42)
pipeline.fit(X_train, y_train)
pipeline.score(X_test, y_test, objectives=['MSE'])

تحد
نود أن نجعل الأمر سهلاً قدر الإمكان على الأشخاص لتشغيل automl ، واختيار خط أنابيب واستخدام خط الأنابيب هذا للتكرار والتصحيح ، ولإنشاء رؤى ونشرها في الإنتاج.

عرض
على المدى القصير (أي هذه المشكلة): best_pipeline يعيد خط أنابيب مدرب:

automl.search(X_train, y_train)
best_pipeline = automl.best_pipeline
best_pipeline.score(X_test, y_test, objectives=['MSE'])

إذا لم يتم تشغيل البحث التلقائي بعد ، فيجب أن يخطئ هذا الموصل.

توصيتي حول كيفية تنفيذ ذلك بتحديث البحث الآلي ليناسب أفضل خط أنابيب في النهاية وحفظ مرجع لخط الأنابيب هذا.

لا تنس تحديث دليل المستخدم!

هناك أيضًا تداعيات على اختبار الأداء: يجب أن نقوم بتحديث زجاج المظهر لتسجيل وقت البحث الآلي والوقت لملاءمة أفضل خط أنابيب بشكل منفصل ، لأنهما عمليات مستقلة.

مستقبل
على المدى الطويل ، أرغب في إنشاء فكرة تجريدية للاحتفاظ بمرجع للبيانات خارج الاستدعاء إلى search . سيسمح لنا هذا بالقيام بأشياء مثل الحصول على خطوط أنابيب مدربة على الإرجاع get_pipeline أيضًا ، دون الحاجة إلى تدريب جميع خطوط الأنابيب أثناء المكالمة إلى automl search .

enhancement

التعليق الأكثر فائدة

هل يجب علينا أيضًا إضافة علامة train_best_pipeline إلى search() أو __init__ للسماح للمستخدم بإيقاف هذا؟ أعتقد أن هذا سيكون لطيفًا لأنه يمكن أن يضيف وقتًا إضافيًا وذاكرة إضافية لإجراء قد لا يرغب المستخدم في حدوثه

ال 3 كومينتر

لذا فإن الخطة هي إضافة وسيطات لـ X_test و y_test إلى واجهة برمجة التطبيقات AutoMLSearch.search ؟ أو أنها ستلائم X و y تم تمريرها إلى search ؟

هل يجب علينا أيضًا إضافة علامة train_best_pipeline إلى search() أو __init__ للسماح للمستخدم بإيقاف هذا؟ أعتقد أن هذا سيكون لطيفًا لأنه يمكن أن يضيف وقتًا إضافيًا وذاكرة إضافية لإجراء قد لا يرغب المستخدم في حدوثه

freddyaboulton أعتقد أنه يجب أن يتناسب مع بيانات التدريب بأكملها التي تم تقديمها إلى search

@ kmax12 نقطة جيدة ، متفق عليها ، يمكننا إضافة علامة train_best_pipeline ، افتراضي True. في هذه الحالة ، حدد ما يجب أن تفعله واجهة برمجة التطبيقات إذا كانت خاطئة. قد تكون غريزتي هي مجرد الحصول على best_pipeline لإرجاع خط أنابيب غير مدرب ، ولكن إذا كان لدى أي شخص فكرة أفضل ، فأنا جميعًا آذان صاغية. @ bchen1116 لمعلوماتك

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات