Evalml: فشل الترقيع في اختبارات AutoMLSearch

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

خطوط أنابيب الترقيع .score() و .fit() تتسبب الطرق التالية في ظهور الرسائل التالية في اختبارات AutoMLSearch:
image

ريبرو
الخروج الرئيسي

pytest -s evalml/tests/automl_tests/test_automl.py::test_automl_rerun
bug

ال 4 كومينتر

@ bchen1116 إذا أضفت return_value إلى النتيجة الوهمية ، يجب أن تختفي:

@patch('evalml.pipelines.BinaryClassificationPipeline.score', return_value={"Log Loss Binary": 0.2})

freddyaboulton هل هذا شيء نحتاج إلى إضافته إلى جميع mocks .score() ؟ وهل سيكون هذا هو أفضل حل لهذا الخطأ؟

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

المشكلة الأساسية هي أنه إذا لم تقدم return_value ، فسيتم إرجاع MagicMock . في النهاية نذهب لتسجيل النتيجة بسلسلة f:

logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
والذي يستخدم طريقة __format__ لـ MagicMock ، والتي أعتقد أنها غير محددة.

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

ماذا تعتقد؟

آه ، هذا منطقي. لم أكن متأكدًا من مصدر هذه الرسالة. أعتقد أن السلوك جيد إذن ، لأنه لا يبدو أنه يضر بسلوك AutoML. شكرا للمساعدة ، سأغلق هذا!

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