TIL_54 : Random Forest_2 : Boosting

JaHyeon Guยท2021๋…„ 11์›” 2์ผ
0

Machine Learning

๋ชฉ๋ก ๋ณด๊ธฐ
12/15
post-thumbnail

๐Ÿ™„ Boosting


โžก Boosting

  • "~์ „๋ณด๋‹ค ๋” ํฌ๊ฑฐ๋‚˜ ๋†’๊ฒŒ ํ•˜๋‹ค"
  • ์ผ๋ถ€๋Ÿฌ ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹์€ ๋ชจ๋ธ๋“ค์„ ์‚ฌ์šฉํ•œ๋‹ค
  • ๋” ๋จผ์ € ๋งŒ๋“  ๋ชจ๋ธ๋“ค์˜ ์„ฑ๋Šฅ์ด, ๋’ค์— ์žˆ๋Š” ๋ชจ๋ธ์ด ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ์…‹์„ ๋ฐ”๊พผ๋‹ค
  • ๋ชจ๋ธ๋“ค์˜ ์˜ˆ์ธก์„ ์ข…ํ•ฉํ•  ๋•Œ, ์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ์˜ ์˜ˆ์ธก์„ ๋” ๋ฐ˜์˜ํ•œ๋‹ค

ํ•ต์‹ฌ : ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹์€ ์•ฝํ•œ ํ•™์Šต์ž (weak learner) ๋“ค์„ ํ•ฉ์ณ์„œ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”



๐Ÿ™„ Adaboost


โžก ์—๋‹ค ๋ถ€์ŠคํŠธ ๊ฐœ์š”

์Šคํ…€ํ”„

  • root node ํ•˜๋‚˜์™€ ๋ถ„๋ฅ˜ ๋…ธ๋“œ ๋‘๊ฐœ๋ฅผ ๊ฐ–๋Š” ์–•์€ ๊ฒฐ์ • ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ฆ
  • ์œ„์™€ ๊ฐ™์€ ํŠธ๋ฆฌ๋ฅผ ๋‚˜๋ฌด์˜ ๊ทธ๋ฃจํ„ฐ๊ธฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” ์Šคํ…€ํ”„ (stump) ๋ผ๊ณ  ํ•จ
  • ํ‰๊ท ์ ์œผ๋กœ 50%๋ณด๋‹ค ์กฐ๊ธˆ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ธ๋‹ค

๋ฐ์ดํ„ฐ ์…‹

  • ๋ฐ์ดํ„ฐ ์…‹์€ ์ž„์˜๋กœ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค
  • ์„œ๋กœ ๋ถ„๋ฅ˜๊ฐ€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฒฐ์ • ์Šคํ…€ํ”„ ํ•˜๋‚˜๊ฐ€ ํ•™์Šต
  • ๊ฒฐ์ • ์Šคํ…€ํ”„๊ฐ€ ๋งž๊ฒŒ ๋ถ„๋ฅ˜ํ•œ ๋ฐ์ดํ„ฐ, ํ‹€๋ฆฌ๊ฒŒ ๋ถ„๋ฅ˜ํ•œ ๋ฐ์ดํ„ฐ ์กด์žฌ
  • ๋‹ค์Œ ์Šคํ…€ํ”„์˜ ๋ฐ์ดํ„ฐ ์…‹์„ ๋งŒ๋“ค ๋•Œ๋Š” ์•ž ์Šคํ…€ํ”„๊ฐ€ ํ‹€๋ฆฐ ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋ฅผ ๋†’์ด๊ณ 
    ๋งž์€ ์• ๋“ค์˜ ์ค‘์š”๋„๋Š” ๋‚ฎ์ถค
  • ์ด๊ฑธ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“์€ ๋งŒํผ ๋ฌด์ˆ˜ํžˆ ๋ฐ˜๋ณต

โžก ์Šคํ…€ํ”„ ์„ฑ๋Šฅ ๊ณ„์‚ฐํ•˜๊ธฐ

๋ฐ์ดํ„ฐ ์…‹

  • ๋ฐ์ดํ„ฐ ์…‹์— ์ค‘์š”๋„๋ผ๋Š” ์—ด์„ ์ถ”๊ฐ€
  • ์ค‘์š”๋„์˜ ํ•ฉ์€ ํ•ญ์ƒ 1
  • ์ฒ˜์Œ์—๋Š” ํ‹€๋ฆฌ๊ฒŒ ์˜ˆ์ธกํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋‹ˆ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋Š” 1m\frac{1}{m}

์ฒซ ์Šคํ…€ํ”„ ๋งŒ๋“ค๊ธฐ

  • ๊ฐ ์งˆ๋ฌธ๋“ค์˜ ์ง€๋‹ˆ ๋ถˆ์ˆœ๋„๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๊ฐ€์žฅ ๋‚ฎ์€, ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์€ ์งˆ๋ฌธ์œผ๋กœ ๋งŒ๋“ฆ

์Šคํ…€ํ”„ ์„ฑ๋Šฅ ๊ณ„์‚ฐํ•˜๊ธฐ

  • 12logโก1โˆ’total_errortotal_error\frac{1}{2}\log\frac{1-total\_error}{total\_error}

  • total_errortotal\_error : ์ž˜๋ชป ๋ถ„๋ฅ˜ํ•œ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ค‘์š”๋„์˜ ํ•ฉ


โžก ๋ฐ์ดํ„ฐ ์ค‘์š”๋„ ๋ฐ”๊พธ๊ธฐ

  • ํ‹€๋ฆฌ๊ฒŒ ์˜ˆ์ธกํ•œ ๋ฐ์ดํ„ฐ ์ค‘์š”๋„
    weightnew=weightoldโˆ—eptreeweight_{new}=weight_{old}*e^{p_{tree}}
  • ๋งž๊ฒŒ ์˜ˆ์ธกํ•œ ๋ฐ์ดํ„ฐ ์ค‘์š”๋„
    weightnew=weightoldโˆ—eโˆ’ptreeweight_{new}=weight_{old}*e^{-p_{tree}}
  • ptreep_{tree} = ํŠธ๋ฆฌ์˜ ์„ฑ๋Šฅ
  • ์ค‘์š”๋„์˜ ํ•ฉ์ด 1์ด ๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ ์ค‘์š”๋„ ๋งˆ๋‹ค
    ์ค‘์š”๋„๋ชจ๋“ ์ค‘์š”๋„์˜ํ•ฉ\frac{์ค‘์š”๋„}{๋ชจ๋“  ์ค‘์š”๋„์˜ ํ•ฉ}๋ฅผ ํ•ด์ค€๋‹ค

โžก ์Šคํ…€ํ”„ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ƒˆ๋กญ๊ฒŒ ๋ฐ์ดํ„ฐ ์…‹ ๋งŒ๋“ค๊ธฐ

  • ๊ธฐ์กด์— ๋ฐ์ดํ„ฐ ์…‹์˜ ํฌ๊ธฐ๋ž‘ ๋˜‘๊ฐ™์€ ๋ฐ์ดํ„ฐ ์…‹์—
    ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋ฅผ ๋ฐ์ดํ„ฐ ์…‹์— ๋“ค์–ด๊ฐˆ ํ™•๋ฅ ๋กœ ์จ์„œ ๋งŒ๋“ฆ
  • ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๋“ค์€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ค์–ด๊ฐ€๊ณ  ๋‚ฎ์€ ๋ฐ์ดํ„ฐ๋“ค์„ ์•„์˜ˆ ์ถ”๊ฐ€๊ฐ€ ์•ˆ๋จ
  • ์ด ๋ฐ์ดํ„ฐ ์…‹์„ ์จ์„œ, ์ฒซ ์Šคํ…€ํ”„๋ฅผ ๋งŒ๋“ค ๋•Œ๋ž‘ ๋˜‘๊ฐ™์ด ์ƒˆ ๋ฐ์ดํ„ฐ ์…‹์œผ๋กœ ์Šคํ…€ํ”„ ๋งŒ๋“ฆ
  • ์ง€๋‹ˆ ๋ถˆ์ˆœ๋„๋ฅผ ๋น„๊ตํ•ด์„œ ๊ฐ€์žฅ ์„ฑ๋Šฅ์„ ์ข‹๊ฒŒ ํ•˜๋Š” ๊ธฐ์ค€์„ ์ •ํ•จ
  • ์Šคํ…€ํ”„์˜ ์„ฑ๋Šฅ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์›๋ž˜ ๋ฐ์ดํ„ฐ ์…‹์—์„œ ๋ถ„๋ฅ˜์— ํ‹€๋ฆฐ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ค‘์š”๋„๋ฅผ ๋†’์ด๊ณ 
    ๋งž์€ ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค



๐Ÿ™„ scikit-learn์œผ๋กœ Adaboost


profile
IWBAGDS

0๊ฐœ์˜ ๋Œ“๊ธ€