Evalml: AutoMLSearch ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ํŒจ์น˜ ์‹คํŒจ

์— ๋งŒ๋“  2021๋…„ 01์›” 12์ผ  ยท  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}")
MagicMock์— ๋Œ€ํ•ด __format__ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋กœ๊น…์ด ํ˜ธ์ถœ๋˜๋Š” ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ถ”์•…ํ•œ ๋กœ๊ทธ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š์„๊นŒ ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ด?

์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋””์„œ ์˜ค๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. AutoML์˜ ๋™์ž‘์— ํ•ด๋ฅผ ๋ผ์น˜ ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰