Evalml: AutoMLSearchテストのパッチ適用が失敗する

作成日 2021年01月12日  ·  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は、すべての.score()モックに追加する必要があるものですか? そして、これはこのバグの最善の解決策でしょうか?

これは、automlの動作を変更せず、失敗したときにテストに合格したり、その逆になったりしないため、これをバグと呼ぶことを躊躇していると思います。

根本的な問題は、return_valueを指定しない場合、 MagicMockが返されることです。 最終的には、f文字列を使用してスコアをログに記録します。

logger.info(f"Best pipeline {self.objective.name}: {best_pipeline['score']:3f}")
これはMagicMockに__format__メソッドを使用しますが、これは定義されていないと思います。

ロギングの呼び出し方法を変更すれば、醜いログを回避できるかもしれませんが、コードが複雑になってほとんどメリットがないのではないかと心配しています。

どう思いますか?

ああ、なるほど、それは理にかなっています。 そのメッセージがどこから来ているのかわかりませんでした。 AutoMLの動作に悪影響を与えないように見えるので、動作は問題ないと思います。 助けてくれてありがとう、これを締めくくります!

このページは役に立ちましたか?
0 / 5 - 0 評価