Evalml: Исправление ошибок тестов AutoMLSearch

Созданный на 12 янв. 2021  ·  4Комментарии  ·  Источник: alteryx/evalml

При исправлении конвейеров методы .score() и .fit() вызывают следующие сообщения в тестах AutoMLSearch:
image

Репро
касса главная

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

Все 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}")
Которая использует метод __format__ для MagicMock, который, я думаю, не определен.

Возможно, если мы изменим способ вызова журнала, мы сможем избежать уродливого журнала, но я боюсь, что это усложнит код с небольшой пользой.

Как вы думаете?

Ах, я понимаю, в этом есть смысл. Я не был уверен, откуда пришло это сообщение. Я думаю, что с таким поведением все в порядке, поскольку оно не наносит ущерба поведению AutoML. Спасибо за помощь, закрою!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги