Evalml: Falha ao aplicar patches em testes do AutoMLSearch

Criado em 12 jan. 2021  ·  4Comentários  ·  Fonte: alteryx/evalml

Os métodos de patching de pipelines .score() e .fit() estão causando as seguintes mensagens nos testes do AutoMLSearch:
image

Repro
checkout main

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

Todos 4 comentários

@ bchen1116 Se você adicionar return_value à simulação de pontuação, ele deve desaparecer:

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

@freddyaboulton isso é algo que precisamos adicionar a todas as simulações de .score() ? E essa seria a melhor solução para esse bug?

Acho que hesito em chamar isso de bug porque não altera o comportamento do automl de forma que faça com que o teste seja aprovado quando deveria falhar ou vice-versa.

O problema subjacente é que, se você não fornecer um return_value, um MagicMock será retornado. Eventualmente, vamos registrar a pontuação com uma string F:

logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
Que usa o método __format__ para o MagicMock, que eu acho que não está definido.

Talvez se mudarmos a forma como o log é chamado, possamos evitar o log feio, mas eu me preocupo que isso complicaria o código e traria poucos benefícios.

O que você acha?

Ah, entendo, isso faz sentido. Eu não tinha certeza de onde essa mensagem estava vindo. Acho que o comportamento está bom, pois não parece ser prejudicial ao comportamento do AutoML. Obrigado pela ajuda, vou encerrar isso!

Esta página foi útil?
0 / 5 - 0 avaliações