Evalml: Fehler beim Patchen von AutoMLSearch-Tests

Erstellt am 12. Jan. 2021  ·  4Kommentare  ·  Quelle: alteryx/evalml

Das Patchen der Pipelines .score() und .fit() verursacht die folgenden Meldungen in AutoMLSearch-Tests:
image

Repro
Kasse Haupt

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

Alle 4 Kommentare

@bchen1116 Wenn Sie dem Spielstandsmock ein return_value hinzufügen, sollte es verschwinden :

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

@freddyaboulton ist das etwas, was wir zu all den .score() Mocks hinzufügen müssen? Und wäre dies die beste Lösung für diesen Fehler?

Ich schätze, ich zögere, dies als Fehler zu bezeichnen, da es das Verhalten von automl nicht so ändert, dass der Test bestanden wird, wenn er fehlschlagen sollte, oder umgekehrt.

Das zugrunde liegende Problem besteht darin, dass MagicMock zurückgegeben wird, wenn Sie keinen Rückgabewert angeben. Schließlich gehen wir, um die Punktzahl mit einem f-String zu protokollieren:

logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
Welche die Methode __format__ für MagicMock verwendet, die meiner Meinung nach nicht definiert ist.

Vielleicht können wir das hässliche Protokoll vermeiden, wenn wir die Art und Weise ändern, wie die Protokollierung aufgerufen wird, aber ich befürchte, dass dies den Code mit geringem Nutzen verkomplizieren würde.

Was denkst du?

Ah ich sehe, das macht Sinn. Ich war mir nicht sicher, woher diese Nachricht kam. Ich denke, das Verhalten ist dann in Ordnung, da es dem Verhalten von AutoML nicht abträglich zu sein scheint. Danke für die Hilfe, ich schließe das aus!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen