ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
I Was Tired of Waiting for GridSearchCV. So I Built Something Smarter. ๐Ÿš€
Dev.toDev.to

I Was Tired of Waiting for GridSearchCV. So I Built Something Smarter. ๐Ÿš€

๋จธ์‹ ๋Ÿฌ๋‹ ์—”์ง€๋‹ˆ์–ด๊ฐ€ GridSearchCV ๋Œ€์‹  ์กฐ๊ธฐ ํƒˆ๋ฝ(early pruning) ๊ธฐ๋ฐ˜ SmartSearch๋ฅผ ๊ฐœ๋ฐœํ•ด ๋™์ผ ์ •ํ™•๋„ ์œ ์ง€ํ•˜๋ฉด์„œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ์†๋„ 17% ๊ฐœ์„ 

Anik Chand2026๋…„ 3์›” 24์ผ

Context

GridSearchCV๋Š” ๋ชจ๋“  ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์— ๋Œ€ํ•ด ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์ „์ฒด ํ•™์Šต ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 4ร—4ร—4=64๊ฐ€์ง€ ์กฐํ•ฉ์— 5-fold CV๋ฅผ ์ ์šฉํ•˜๋ฉด 320๋ฒˆ์˜ ์™„์ „ํ•œ ํ•™์Šต์ด ์‹คํ–‰๋˜์–ด ๋งค์šฐ ๋А๋ฆฌ๋‹ค.

Technical Solution

  • ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์„ ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 30%๋งŒ ์‚ฌ์šฉํ•ด 3-fold CV๋กœ ๋น ๋ฅด๊ฒŒ ์Šคํฌ๋ฆฌ๋‹: ์ดˆ๊ธฐ ์„ฑ๋Šฅ ์ˆœ์œ„ ํ‰๊ฐ€
  • ์Šคํฌ๋ฆฌ๋‹ ๊ฒฐ๊ณผ์—์„œ ํ•˜์œ„ X%๋ฅผ ์ œ๊ฑฐ(prune_ratio ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ œ์–ด): ๋ช…ํ™•ํžˆ ์„ฑ๋Šฅ์ด ๋‚ฎ์€ ์กฐํ•ฉ์€ ์ „์ฒด ํ•™์Šต์—์„œ ์ œ์™ธ
  • ๋‚จ์€ ์กฐํ•ฉ๋“ค๋งŒ ์ „์ฒด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ(70%)๋กœ proper CV ์‹คํ–‰: ๋ฆฌ์†Œ์Šค ์ง‘์ค‘ ํˆฌ์ž
  • 80/20 train-test ๋ถ„ํ•  + 30/70 screening-validation ๊ณ„์ธตํ™” ์ „๋žต: ํŽธํ–ฅ ์ œ๊ฑฐ ๋ฐ ์‹ ๋ขฐ๋„ ํ™•๋ณด
  • SmartSearch ํด๋ž˜์Šค๋ฅผ GridSearchCV์™€ ๋™์ผํ•œ API๋กœ ๊ตฌํ˜„: ํ•™์Šต ๊ณก์„  ์ตœ์†Œํ™”

Impact

  • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹(143.5์ดˆ ์†Œ์š”) ๋ฒค์น˜๋งˆํฌ์—์„œ GridSearchCV ๋Œ€๋น„ ์ •ํ™•๋„ ๋™๋“ฑ(0.982 vs 0.978) ๋‹ฌ์„ฑํ•˜๋ฉฐ ์‹คํ–‰ ์‹œ๊ฐ„ 17% ๋‹จ์ถ•(122.3์ดˆ)
  • ์†Œ๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹ ๋ฒค์น˜๋งˆํฌ์—์„œ GridSearchCV(0.909), RandomizedSearchCV(0.909), Optuna(0.912), Hyperopt(0.913) ๋Œ€๋น„ ๊ฐ€์žฅ ๋†’์€ ์ •ํ™•๋„(0.940) ๊ธฐ๋ก
  • ์ž‘์€ ๊ทธ๋ฆฌ๋“œ(9๊ฐœ ์กฐํ•ฉ)์—์„œ 3๊ฐœ๋งŒ ์ „์ฒด ํ•™์Šต: ๊ณ„์‚ฐ ๋น„์šฉ 67% ๊ฐ์†Œ

Key Takeaway

ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์—์„œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋™๋“ฑํ•˜๊ฒŒ ํ‰๊ฐ€ํ•  ํ•„์š”๋Š” ์—†๋‹ค. ์ €๋น„์šฉ ์Šคํฌ๋ฆฌ๋‹์œผ๋กœ ์ดˆ๊ธฐ ์ˆœ์œ„๋ฅผ ํŒŒ์•…ํ•œ ํ›„ ์œ ๋งํ•œ ํ›„๋ณด๋งŒ ์ง‘์ค‘ ํ•™์Šตํ•˜๋Š” two-stage ์ ‘๊ทผ๋ฒ•์€ sklearn ์ƒํƒœ๊ณ„ ๋‚ด์—์„œ๋„ GridSearchCV ์ˆ˜์ค€์˜ ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ