خلفية
اليوم من أجل الحصول على خط أنابيب مدرب من 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
.
لذا فإن الخطة هي إضافة وسيطات لـ X_test
و y_test
إلى واجهة برمجة التطبيقات AutoMLSearch.search
؟ أو أنها ستلائم X
و y
تم تمريرها إلى search
؟
هل يجب علينا أيضًا إضافة علامة train_best_pipeline
إلى search()
أو __init__
للسماح للمستخدم بإيقاف هذا؟ أعتقد أن هذا سيكون لطيفًا لأنه يمكن أن يضيف وقتًا إضافيًا وذاكرة إضافية لإجراء قد لا يرغب المستخدم في حدوثه
freddyaboulton أعتقد أنه يجب أن يتناسب مع بيانات التدريب بأكملها التي تم تقديمها إلى search
@ kmax12 نقطة جيدة ، متفق عليها ، يمكننا إضافة علامة train_best_pipeline
، افتراضي True. في هذه الحالة ، حدد ما يجب أن تفعله واجهة برمجة التطبيقات إذا كانت خاطئة. قد تكون غريزتي هي مجرد الحصول على best_pipeline
لإرجاع خط أنابيب غير مدرب ، ولكن إذا كان لدى أي شخص فكرة أفضل ، فأنا جميعًا آذان صاغية. @ bchen1116 لمعلوماتك
التعليق الأكثر فائدة
هل يجب علينا أيضًا إضافة علامة
train_best_pipeline
إلىsearch()
أو__init__
للسماح للمستخدم بإيقاف هذا؟ أعتقد أن هذا سيكون لطيفًا لأنه يمكن أن يضيف وقتًا إضافيًا وذاكرة إضافية لإجراء قد لا يرغب المستخدم في حدوثه