Evalml: ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์˜ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€: "double_scalars์—์„œ ์ž˜๋ชป๋œ ๊ฐ’์ด ๋ฐœ๊ฒฌ๋จ" ๋ฐ ๊ธฐํƒ€

์— ๋งŒ๋“  2020๋…„ 01์›” 09์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: alteryx/evalml

๋ฌธ์ œ
๋กœ์ปฌ์—์„œ ์‹คํ–‰(python 3.8์—์„œ, ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ Python ๋ฒ„์ „์—์„œ๋„ ๋น„์Šทํ•œ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค)

(featurelabs) โžœ  evalml git:(master) pytest -v evalml/tests/automl_tests/test_autobase.py::test_pipeline_limits
====================================================================== test session starts ======================================================================
platform darwin -- Python 3.8.0, pytest-4.4.1, py-1.8.0, pluggy-0.13.1 -- /Users/dsherry/anaconda/envs/featurelabs/bin/python
cachedir: .pytest_cache
rootdir: /Users/dsherry/development/aie/featurelabs/evalml, inifile: setup.cfg
plugins: xdist-1.26.1, cov-2.6.1, nbval-0.9.3, forked-1.1.3
collected 1 item

evalml/tests/automl_tests/test_autobase.py::test_pipeline_limits PASSED       [100%]

======================================================================= warnings summary ========================================================================
evalml/tests/automl_tests/test_autobase.py::test_pipeline_limits
evalml/tests/automl_tests/test_autobase.py::test_pipeline_limits
...
  /Users/dsherry/anaconda/envs/featurelabs/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning:

  Precision is ill-defined and being set to 0.0 due to no predicted samples.
...
  /Users/dsherry/anaconda/envs/featurelabs/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning:

  F-score is ill-defined and being set to 0.0 due to no predicted samples.
...
  /Users/dsherry/anaconda/envs/featurelabs/lib/python3.8/site-packages/sklearn/metrics/classification.py:872: RuntimeWarning:

  invalid value encountered in double_scalars
...
  /Users/dsherry/development/aie/featurelabs/evalml/evalml/automl/auto_base.py:307: RuntimeWarning:

  invalid value encountered in double_scalars

sklearn์—์„œ 3๊ฐœ์˜ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ฝ”๋“œ์—์„œ 1๊ฐœ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ์˜ ์กฐํ•ฉ/์ˆœ์„œ๊ฐ€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ •๋ณด
AutoBase._add_result ์—์„œ ๋งˆ์ง€๋ง‰ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•œ ํ–‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค .
high_variance_cv = (scores.std() / scores.mean()) > .2

scores ์ด ๋ชจ๋‘ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ๋ชจ๋‘ 0์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™œ ๊ทธ๋Ÿด๊นŒ์š”? ์ด๊ฒƒ์€ ๋‹ค์Œ์— ์‚ดํŽด๋ณผ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ์ฑ„์ ํ•  ๋•Œ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ์˜์‹ฌ์€ ์ด ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ๋„ˆ๋ฌด ์ž‘๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ๊ท ์ผํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์ด ๋ชจ๋‘ ๋™์ผํ•œ ๊ฐ’ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ์˜ˆ์ธกํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์˜ณ๋‹ค๋ฉด ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์ด ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€๋“œ๋ ˆ์ผ์ด ํ•„์š”ํ•˜๊ณ  ์‹ค์ œ ํ”ผํŒ…(#275)์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—์„œ ์กฐ๋กฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค(์ด ํŠน์ • ํ…Œ์ŠคํŠธ๊ฐ€ ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ ์กฐ๋กฑ).

๋ฒ„๊ทธ #167 ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ๊ทธ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„
์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ด์œ ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ”ผํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฒ„๊ทธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์ •์ƒ์ ์ธ ์‚ฌ์šฉ์—์„œ ์ด์™€ ๊ฐ™์€ ๊ฒฝ๊ณ ๋ฅผ ์ธ์‡„ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ #445๊ฐ€ ๋ณ‘ํ•ฉ๋œ ํ›„ ๋งˆ์Šคํ„ฐ์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 3.8์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ @dsherry๋Š” ๋ณ‘ํ•ฉ๋œ ๋ชฉํ‘œ์™€ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง„ ์ด์œ ๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ง€๊ธˆ์€ ๋‹ซ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@jeremyliweishih ํ , ์ด์ƒํ•ด! ์˜ˆ, double_scalar ๋Œ€ํ•œ ํŠน์ • ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ #445๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์„ž์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ๋งํฌ ํ•œ circleci ์ž‘์—…์—์„œ ์ด๊ฒƒ์„ ๋ด…๋‹ˆ๋‹ค.

=============================== warnings summary ===============================
evalml/utils/gen_utils.py:98
  /home/circleci/evalml/evalml/utils/gen_utils.py:98: RuntimeWarning: invalid value encountered in true_divide
    conf_mat = conf_mat.astype('float') / conf_mat.sum(axis=0)

test_python/lib/python3.8/site-packages/numpy/core/_methods.py:38
  /home/circleci/evalml/test_python/lib/python3.8/site-packages/numpy/core/_methods.py:38: ComplexWarning: Casting complex values to real discards the imaginary part
    return umr_sum(a, axis, dtype, out, keepdims, initial, where)

๊ทธ๊ฒƒ๋“ค์„ ์—†์• ์ž, ์‘? ๋ฒ„๊ทธ๋ฅผ ๋ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ œ์•ˆ: "์‹œ๋„" ์ถ”๊ฐ€์˜ˆ์™ธ RuntimeWarning as e: assert False, e" in evalml/evalml/utils/gen_utils.py:98 , circleci์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์ค‘๋‹จ๋˜๋Š” ์œ„์น˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”?

@dsherry @jeremyliweishih ์ด์— ๋Œ€ํ•ด Jeremy์™€ ์ด์•ผ๊ธฐํ–ˆ์ง€๋งŒ ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” PR์ด ๋‘ ๋ฒˆ์งธ ๊ฒฝ๊ณ ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค! :) (#638)

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