Les méthodes de correctifs des pipelines .score()
et .fit()
provoquent les messages suivants dans les tests AutoMLSearch :
Repro
caisse principale
pytest -s evalml/tests/automl_tests/test_automl.py::test_automl_rerun
@bchen1116 Si vous ajoutez un return_value
au score fictif, il devrait disparaître :
@patch('evalml.pipelines.BinaryClassificationPipeline.score', return_value={"Log Loss Binary": 0.2})
@freddyaboulton est-ce quelque chose que nous devons ajouter à toutes les .score()
? Et serait-ce la meilleure solution pour ce bug ?
Je suppose que j'hésite à appeler cela un bogue car cela ne modifie pas le comportement d'automl de manière à ce que le test réussisse lorsqu'il devrait échouer ou vice versa.
Le problème sous-jacent est que si vous ne fournissez pas de return_value, un MagicMock
est renvoyé. Finalement, nous allons enregistrer le score avec une chaîne f :
logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
Qui utilise la méthode __format__
pour le MagicMock, qui, je suppose, n'est pas définie.
Peut-être que si nous changeons la façon dont la journalisation est appelée, nous pouvons éviter le journal moche, mais je crains que cela ne complique le code pour peu d'avantages.
Qu'est-ce que tu penses?
Ah je vois, c'est logique. Je ne savais pas d'où venait ce message. Je pense que le comportement est bon alors, car il ne semble pas nuire au comportement d'AutoML. Merci pour l'aide, je vais clore ça !