خطوط أنابيب الترقيع .score()
و .fit()
تتسبب الطرق التالية في ظهور الرسائل التالية في اختبارات AutoMLSearch:
ريبرو
الخروج الرئيسي
pytest -s evalml/tests/automl_tests/test_automl.py::test_automl_rerun
@ 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. شكرا للمساعدة ، سأغلق هذا!