๋ฌธ์
ํญ์ ์ฐธ์ ์์ธกํ๋ ๋ชจ๋ธ์ ์๋ฒฝํ ์ฌํ์จ์ ๊ฐ์ต๋๋ค. automl์ด ํ์๋ฅผ ์ต์ ํํ๋๋ก ํ์ฉํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ์ฌ์ํ ๋ชจ๋ธ์ ์์ฑํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ์ฉํ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ ์
ํ์ ๋ชฉํ๋ฅผ ์ญ์ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก automl ๋ชฉํ ์ธํธ๋ฅผ ์ฐ๋ฆฌ๊ฐ ๊ฐ์น ์๋ค๊ณ ๋๋ผ๋ ๊ฒ์ผ๋ก ์ ํํด์ผ ํ๋ฉฐ ์ด๋ฌํ ๋ชฉํ๋ฅผ ์ต์ ํํ๋ฉด ์ข์ ๋ชจ๋ธ์ด ์์ฑ๋ฉ๋๋ค.
์ด์ง ๋ถ๋ฅ ๋ชฉํ๋ ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. #457์๋ ๋ถ๊ท ํ ํด๋์ค์ ์ข์ ์ ์์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ง๋ฌธ
*์ ๋ฐ๋์ ๋ํด ๋น์ทํ ์ฃผ์ฅ์ ํ ์ ์์ต๋๊น? ์๋๋ฉด ์ต์ ํํ ๊ฐ์น๊ฐ ์์ต๋๊น?
*์ ํ์ฑ์ ์ํด ๋น์ทํ ์ฃผ์ฅ์ ํ ์ ์์ต๋๊น(#294)?
@angela97lin @kmax12
๋๋ ๊ทธ๋ค์ด ๋น์ ์๊ฒ ์ฌ์ํ ๋ชจ๋ธ์ ์ ๊ณตํ์ง ์์ ๊ฒ์ด๋ผ๋ ์ ์์ ์ ๋ฐ๋์ ์ ํ์ฑ์ด ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ๋์ ๋ชฉํ๋ก ํ์๋ฅผ ์ญ์ ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ๋จ์ง automl ๊ฒ์์์ ์ด์ ๋ํด ์ต์ ํ๋์ด์๋ ์ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด f1์ ๋ํด ์ต์ ํํ๊ณ ์ถ์ง๋ง ๊ทธ์ ํจ๊ป ๋ด ํ์ ์ ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
@kmax12 ๋ค, ๋ง์ต๋๋ค. ๋ฆฌ์ฝ์ ๊ณ์ฐํ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๊ณ ์ถ์ง ์๊ณ ํ์ดํ๋ผ์ธ์ ์ ์๋ก ์ปดํจํ ๋ฆฌ์ฝ์ ๊ณ์ ์ง์ํ๊ณ ์ถ์ง๋ง automl์์ ์ง์๋๋ ์ต์ ํ ๋ชฉํ๋ก ํ์ฉํ์ง ์์ผ๋ ค๊ณ ํฉ๋๋ค.
์ด๊ฒ์ ROC ๋ฐ ํผ๋ ํ๋ ฌ(#427, #365)์ ๋ํ ์ด์ง ๋ถ๋ฅ ํ๋กํ
/์ ๋ณด ๋ฐฉ๋ฒ์ ๋ํ ์ง์์ ์ธ ๋
ผ์๋ฅผ ์๊ธฐ์ํต๋๋ค. ๊ทธ๊ฒ๋ค์ automl์์ ์ต์ ํํ ์ ์๋ ์ธก์ ํญ๋ชฉ์ด ์๋๋ฉฐ ๋จ์ผ ์ซ์ ์ ์๋ ์๋์ง๋ง API์์ ์ ์ํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ด๋ฅผ ObjectiveBase
์ ์ธ์คํด์ค๋ก ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค.
ํ์ฌ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ฌ ๊ณ์ฐํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ง๊ธ๊น์ง ObjectiveBase
๋ฅผ ์ฌ์ฉํ์ฌ 2, 3, 4๋ฅผ ๋ํ๋ด๋ ค๊ณ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, automl ํ๋ก์ธ์ค์ ๋ณ๋๋ก ์ฑ์ ๋ฐฉ๋ฒ๊ณผ ํ๋กํ
๋ฐฉ๋ฒ์ ์ ์ํ๋ ๋ช
ํํ API๊ฐ ์์ต๋๋ค. .
์ฌ๊ธฐ์์ ๋ค์ ๋จ๊ณ๋ ์ด๋ฌํ API๋ฅผ ์ค๊ณํ๋ ๊ฒ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฏธ #392๋ก ์ ๊ณ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐจ๋จ๋๋๋ก ์ด ํฐ์ผ์ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
์ง๊ธ ๋ชฉํ API ์ฌ์์
์ ์ํด ROC์ Confusion Matrix๋ฅผ PlotMetrics
๋ก ์ฎ๊ฒผ์ต๋๋ค. ๊นจ๋ ๊ฒ). ๋ํ can_optimize_threshold
๋ฅผ BinaryClassificationObjective
์ ๋ํ ์์ฑ์ผ๋ก ์ถ๊ฐํ์ต๋๋ค. ๋ฐ๋ผ์ fit()์ด can_optimize_threshold=True
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉํ์ ํจ๊ป ํธ์ถ๋๋ฉด ํด๋น ๋ชฉํ์ ๋ํด ์ต์ ํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์์ ์ํด ์ต์ ํํฉ๋๋ค. ์ ํ์ฑ. ์ด์ ๋ํ ์๊ฐ๊ณผ ์ด๊ฒ์ด ์ฌ๊ธฐ์์ ์ ๊ธฐ๋ ๋ช ๊ฐ์ง ์ง๋ฌธ๊ณผ ์ด๋ป๊ฒ ์ผ์นํ ์ ์์ต๋๊น? ์ฌ์ฉ์๊ฐ ๋ฆฌ์ฝ์์ fit
๋ฅผ ํธ์ถํ์ง๋ง ๋์ ์ ํ๋์ ์ต์ ํํ๋์ง ์ฌ๋ถ๊ฐ ๋ถ๋ถ๋ช
ํฉ๋๊น?
@angela97lin ์, ObjectiveBase
์์ ROC/confusion์ ์ ๊ฑฐํ ๊ฒ์ด ๊ธ์ ์ ์ธ ๋จ๊ณ๋ผ๊ณ ์๊ฐํฉ๋๋ค! ๋๋ #392๊ฐ ๋ ๋์๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๋์ #392์์ API๋ฅผ ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ํ๋ฅผ ๊ณ์ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฐ ํ ์
๋ฐ์ดํธ ํ์๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.
๋ํ ์ด์ง ๋ถ๋ฅ ์๊ณ๊ฐ ์ต์ ํ๋ ๋ณ๋์ ์ฃผ์ ์ด๋ฉฐ ๊ฐ์ฌํ๊ฒ๋ #346์์ ์งํ ์ค์ธ ์์ ์ด 100% ์ฒ๋ฆฌ๋๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค!
์์ @eccabay ๋ฐ @jeremyliweishih ์์ ํ ๋ก ์์ฝ: ์ด๋ฅผ ์ง์ํ๋ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
objectives/utils.py
OPTIONS
์์ ํ์ ๋ชฉํ์ ๋ํ ํญ๋ชฉ์ ์ญ์ ํ๊ณ automl์์ ํด๋น ๋ชฉํ๋ฅผ ํ์ฉํ์ง ์๋์ง ํ์ธํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ทธ๋ค์ด ๋น์ ์๊ฒ ์ฌ์ํ ๋ชจ๋ธ์ ์ ๊ณตํ์ง ์์ ๊ฒ์ด๋ผ๋ ์ ์์ ์ ๋ฐ๋์ ์ ํ์ฑ์ด ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ๋์ ๋ชฉํ๋ก ํ์๋ฅผ ์ญ์ ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ๋จ์ง automl ๊ฒ์์์ ์ด์ ๋ํด ์ต์ ํ๋์ด์๋ ์ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด f1์ ๋ํด ์ต์ ํํ๊ณ ์ถ์ง๋ง ๊ทธ์ ํจ๊ป ๋ด ํ์ ์ ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.