Evalml: يعرض AutoMLSearch get_pipeline دائمًا خطوط الأنابيب التي تحمل الاسم نفسه

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

ريبرو:

from evalml.automl import AutoMLSearch
from evalml.demos import load_breast_cancer

X, y = load_breast_cancer()
automl = AutoMLSearch(X, y, problem_type="binary", max_batches=1)
automl.search()

pipelines = [automl.get_pipeline(i) for i in range(3)]
assert [p.name for p in pipelines] == ['LightGBM Classifier w/ Imputer', 'LightGBM Classifier w/ Imputer', 'LightGBM Classifier w/ Imputer']

يجب ألا تحمل جميع خطوط الأنابيب نفس الاسم. المقدّرون مختلفون:

[p.estimator.name for p in pipelines]
['Baseline Classifier', 'Decision Tree Classifier', 'LightGBM Classifier']
bug needs design

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

أعتقد أن هذا نابع من # 1400. أعتقد أننا في مأزق (يقصد التورية) - يعتمد تصميم خط الأنابيب لدينا على تعيين سمات فئة لتحديد خطوط الأنابيب ، مما يؤدي إلى إنشاء فئات خطوط أنابيب ديناميكيًا كما نفعل في البحث. تكمن المشكلة في أنه لا يمكن "تصدير" خطوط الأنابيب هذه من AutoMLSearch.

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

ال 3 كومينتر

انها ليست مجرد الأسماء. يتم تحديث المعلمات الفائقة (وأظن أن القيم الأخرى المخزنة في الفصل الدراسي) يتم تحديثها أيضًا. هذا لأننا نستخدم فئة GeneratedPipelineBinary ونحدّث متغيرات صنفها. نظرًا لأن كل خط أنابيب هو GeneratedPipelineBinary ، فسيتم تحديثه للفصل بأكمله وسيؤثر على جميع المثيلات.

أعتقد أن هذا نابع من # 1400. أعتقد أننا في مأزق (يقصد التورية) - يعتمد تصميم خط الأنابيب لدينا على تعيين سمات فئة لتحديد خطوط الأنابيب ، مما يؤدي إلى إنشاء فئات خطوط أنابيب ديناميكيًا كما نفعل في البحث. تكمن المشكلة في أنه لا يمكن "تصدير" خطوط الأنابيب هذه من AutoMLSearch.

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

يخطط
على المدى القصير: تتعقب هذه المشكلة التراجع عن التغيير من # 1400 لحل سلوك عربات التي تجرها الدواب. لن تدعم خطوط الأنابيب لدينا لغة python pickle ولكنها ستظل قابلة للتسلسل باستخدام الوظيفة الحالية save / load التي تستخدم cloudpickle .

على المدى الطويل: بعد التراجع ، يتتبع # 1956 كيفية دعم توفير خطوط أنابيب Evalml باستخدام python pickle .

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