๐Ÿ’ก WIDA/DACON ๋ถ„๋ฅ˜-ํšŒ๊ท€

[DACON/๊น€๋ฏผํ˜œ] ๋ถ„๋ฅ˜ ๋ชจ๋ธ ์•Œ์•„๋ณด๊ธฐ

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2023. 3. 22. 00:47

๋ถ„๋ฅ˜ classification


  • ์ง€๋„ํ•™์Šต์˜ ๋Œ€ํ‘œ์ ์ธ ์œ ํ˜•
    • ์ง€๋„ํ•™์Šต: ๋ช…์‹œ์ ์ธ ์ •๋‹ต์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ง„ ์ƒํƒœ์—์„œ ํ•™์Šตํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ฐฉ์‹
  • ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ํ”ผ์ฒ˜์™€ ๋ ˆ์ด๋ธ”๊ฐ’(๊ฒฐ์ • ๊ฐ’, ํด๋ž˜์Šค ๊ฐ’)์„ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•™์Šตํ•ด ๋ชจ๋ธ ์ƒ์„ฑ
  • ์ƒ์„ฑ๋œ ๋ชจ๋ธ์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ฏธ์ง€์˜ ๋ ˆ์ด๋ธ” ๊ฐ’์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ
    ⇒ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ ˆ์ด๋ธ”์— ์†ํ•˜๋Š”์ง€ ํŒจํ„ด์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ธ์ง€ํ•œ ๋’ค, ์ƒˆ๋กญ๊ฒŒ ๊ด€์ธก๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ ˆ์ด๋ธ”์„ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ.
  • ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ’(์ด์‚ฐํ˜•)์ธ ๊ฒฝ์šฐ
  • ๋…๋ฆฝ๋ณ€์ˆ˜๊ฐ’์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ทธ ๊ฐ’๊ณผ ๊ฐ€์žฅ ์—ฐ๊ด€์„ฑ์ด ํฐ ์ข…์†๋ณ€์ˆ˜๊ฐ’(ํด๋ž˜์Šค)์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฌธ์ œ
    • ์ฆ‰, ์–ด๋–ค ํ‘œ๋ณธ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ทธ ํ‘œ๋ณธ์ด ์–ด๋–ค ์นดํ…Œ๊ณ ๋ฆฌ ํ˜น์€ ํด๋ž˜์Šค์— ์†ํ•˜๋Š”์ง€
      • ex. ์ด๋ฏธ์ง€๋ฅผ ์ปดํ“จํ„ฐ์— ์ž…๋ ฅํ–ˆ์„ ๋•Œ “๊ฐœ”์ธ์ง€ “๊ณ ์–‘์ด”์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฌธ์ œ

 

๊ฒฐ์ • ํŠธ๋ฆฌ Decision Tree


๊ฐœ๋…

: ๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ๊ทœ์น™์„ ํ•™์Šต์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ฐพ์•„๋‚ด ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๋ฅ˜ ๊ทœ์น™์„ ๋งŒ๋“œ๋Š” ๊ฒƒ.

  • ML ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋ฐ์ดํ„ฐ์˜ ์–ด๋–ค ๊ธฐ์ค€์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด์•ผ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ถ„๋ฅ˜๊ฐ€ ๋  ๊ฒƒ์ธ์ง€๊ฐ€ ๊ด€๊ฑด

  • ๊ทœ์น™ ๋…ธ๋“œ(Decision Node)์—์„œ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ถ„ํ• ๋จ. ๊ทœ์น™ ์กฐ๊ฑด์„ ๋‚˜ํƒ€๋ƒ„
  • ์„œ๋ธŒ ํŠธ๋ฆฌ(Sub Tree)๋Š” ์ƒˆ๋กœ์šด ๊ทœ์น™ ์กฐ๊ฑด๋งˆ๋‹ค ์ƒ์„ฑ๋จ.
  • ๊ณ„์†๋˜๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ ๋…ธ๋“œ๊ฐ€ ๋ถ„ํ• ๋˜๋ฉฐ ์ตœ์ข…์ ์œผ๋กœ ๋ฆฌํ”„ ๋…ธ๋“œ(Leaf Node)์—์„œ๋Š” ๊ฒฐ์ •๋œ ํด๋ž˜์Šค ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋จ
  • ๊ฒฐ์ • ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์น˜์ง€ ์•Š๊ฒŒ ์ ์ ˆํžˆ ๋ถ„ํ• ํ•ด์•ผ ํ•˜๋ฉฐ ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ†ตํ•ด ๊ด€๋ จ์„ฑ์ด ์ ์€ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ์ œ๊ฑฐ or ํŠธ๋ฆฌ์˜ ๊นŠ์ด์— ์ œํ•œ์„ ๋‘๋Š” ๋“ฑ์˜ ๋ฐฉ์‹์œผ๋กœ ๊ณผ์ ํ•ฉ์ด ์ผ์–ด๋‚˜์ง€ ์•Š์„ ์ ์ ˆํ•œ ํŠธ๋ฆฌ ๋งŒ๋“ค์–ด์•ผ ํ•จ
  • ๋งŽ์€ ๊ทœ์น™์ด ์žˆ๋‹ค๋Š” ๊ฒƒ = ๋ถ„๋ฅ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์ด ๋”์šฑ ๋ณต์žกํ•ด์ง
    ⇒ ํŠธ๋ฆฌ์˜ ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์งˆ์ˆ˜๋ก ๊ฒฐ์ • ํŠธ๋ฆฌ์˜ ์˜ˆ์ธก ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
  • ํŠธ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ถ„ํ• ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ํ•œ ๊ท ์ผํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”
    • ๊ท ์ผ๋„ ์ธก์ •๋ฐฉ๋ฒ•
      1. ์ •๋ณด ์ด๋“: ์—”ํŠธ๋กœํ”ผ(์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์˜ ํ˜ผ์žก๋„) ๊ฐœ๋… ๊ธฐ๋ฐ˜. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์ด ์„ž์—ฌ ์žˆ์œผ๋ฉด ๋†’๊ณ , ๊ฐ™์€ ๊ฐ’์ด ์„ž์—ฌ ์žˆ์œผ๋ฉด ๋‚ฎ์Œ.
        • ์ •๋ณด ์ด๋“์ด ๋†’์€ ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• 
        • ์ •๋ณด ์ด๋“ ์ง€์ˆ˜ = 1-์—”ํŠธ๋กœํ”ผ ์ง€์ˆ˜
      2. ์ง€๋‹ˆ ๊ณ„์ˆ˜: 0์ด ๊ฐ€์žฅ ํ‰๋“ฑํ•˜๋ฉฐ 1๋กœ ๊ฐˆ์ˆ˜๋ก ๋ถˆํ‰๋“ฑ. ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค์–‘ํ•œ ๊ฐ’์„ ๊ฐ€์งˆ์ˆ˜๋ก ํ‰๋“ฑ, ํŠน์ • ๊ฐ’์œผ๋กœ ์ ๋ฆด ๋•Œ๋Š” ๋ถˆํ‰๋“ฑํ•œ ๊ฐ’.
        • ๋‹ค์–‘์„ฑ์ด ๋‚ฎ์„์ˆ˜๋ก ๊ท ์ผ๋„๊ฐ€ ๋†’๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ 1๋กœ ๊ฐˆ์ˆ˜๋ก ๊ท ์ผ๋„๊ฐ€ ๋†’์œผ๋ฉฐ, ์ง€๋‹ˆ ๊ณ„์ˆ˜๊ฐ€ ๋†’์€ ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• 

 

ํŠน์ง•

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

 

์•™์ƒ๋ธ” ํ•™์Šต Ensemble Learning


๊ฐœ๋…

DEF) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๋ฅ˜๊ธฐ(Classifier)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์˜ˆ์ธก์„ ๊ฒฐํ•ฉํ•จ์œผ๋กœ์จ ๋ณด๋‹ค ์ •ํ™•ํ•œ ์ตœ์ข… ์˜ˆ์ธก์„ ๋„์ถœํ•˜๋Š” ๊ธฐ๋ฒ•

  • ๋ชฉํ‘œ: ๋‹ค์–‘ํ•œ ๋ถ„๋ฅ˜๊ธฐ์˜ ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํ•ฉํ•จ์œผ๋กœ์จ ๋‹จ์ผ ๋ถ„๋ฅ˜๊ธฐ๋ณด๋‹ค ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ์˜ˆ์ธก๊ฐ’์„ ์–ป๋Š” ๊ฒƒ (์ง‘๋‹จ์ง€์„ฑ ๋Š๋‚Œ)
  • ๋Œ€๋ถ€๋ถ„์˜ ์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฅ˜ํ•ด ๋‚ผ ๋•Œ ๋›ฐ์–ด๋‚œ ํšจ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • ํ•™์Šต ์œ ํ˜•
    1. Voting: ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์…‹์—์„œ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด ์˜ˆ์ธกํ•œ ๊ฐ’์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹
      • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ํˆฌํ‘œ๋ฅผ ํ†ตํ•ด ์ตœ์ข… ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹ - ์„œ๋กœ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ง„ ๋ถ„๋ฅ˜๊ธฐ์˜ ๊ฒฐํ•ฉ
    2. Bagging: ํ•œ ๊ฐ€์ง€์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์…‹ ๊ฐ๊ฐ์„ ํ•™์Šต์‹œ์ผœ ์˜ˆ์ธกํ•œ ๊ฐ’์„ ๊ฒฐํ•ฉ
      • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ํˆฌํ‘œ๋ฅผ ํ†ตํ•ด ์ตœ์ข… ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹ - ๊ฐ๊ฐ์˜ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์œ ํ˜•์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜. ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ๋ง์„ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋ฉด์„œ ๋ณดํŒ… ์ˆ˜ํ–‰.
        • ex) ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • ๋Œ€๋ถ€๋ถ„ ๊ฒฐ์ • ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ
    3. Boosting: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ ์•ž์„œ ์˜ˆ์ธก์„ ์ง„ํ–‰ํ•œ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ์˜ˆ์ธก์— ํ‹€๋ฆฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ฐ€์ค‘์น˜(weight)๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋‹ค์Œ ๋ถ„๋ฅ˜๊ธฐ์˜ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹
      • XGBoost(eXtra Gradient Boost), LightGBM(Light Gradient Boost), ๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŠธ
      • ๋Œ€๋ถ€๋ถ„ ๊ฒฐ์ • ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ
    • Stacking: ๋ฏธ๋ฆฌ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๊ธฐ๋กœ๋กœ ํ•™์Šตํ•œ ์˜ˆ์ธก ๊ฐ’์„ ๋‹ค์‹œ ํ•™์Šต์šฉ ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค์–ด ๋‹ค๋ฅธ ๋ถ„๋ฅ˜๊ธฐ์— ์žฌ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ์‹
      • ๋ฐฐ๊น… ๋ฐ ๋ถ€์ŠคํŒ…๊ณผ์˜ ๊ณตํ†ต์  - ๊ฐœ๋ณ„์ ์ธ ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„œ๋กœ ๊ฒฐํ•ฉํ•ด ์˜ˆ์ธก ๊ฒฐ๊ณผ ๋„์ถœ
      • ์ฐจ์ด์  - ๊ฐœ๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์˜ˆ์ธกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ์˜ˆ์ธก ์ˆ˜ํ–‰

 

๋ณดํŒ… voting

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

 

๋ฐฐ๊น… bagging - ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ

: ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ณดํŒ…์œผ๋กœ ์ตœ์ข… ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘์ฒฉ๋œ ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๊ฒฐ์ • ํŠธ๋ฆฌ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ๊ฐ๊ฐ ์ ์šฉํ•˜๋Š” ๊ฒƒ

  • ์•™์ƒ๋ธ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ๋น„๊ต์  ๋น ๋ฅธ ์ˆ˜ํ–‰ ์†๋„
  • ๋‹ค์–‘ํ•œ ์˜์—ญ์—์„œ ๋†’์€ ์˜ˆ์ธก ์„ฑ๋Šฅ
  • ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฒฐ์ • ํŠธ๋ฆฌ๋กœ, ์‰ฝ๊ณ  ์ง๊ด€์ ์ธ ์žฅ์ 
  • ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘ bootstrapping
    • ๊ฐœ๋ณ„ ํŠธ๋ฆฌ๊ฐ€ ํ•™์Šตํ•˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ์—์„œ ์ผ๋ถ€๊ฐ€ ์ค‘์ฒฉ๋˜๊ฒŒ ์ƒ˜ํ”Œ๋ง๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ค‘์ฒฉ๋˜๊ฒŒ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ
  • ์‚ฌ์ดํ‚ท๋Ÿฐ์€ RandomForestClassifier ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ๋ถ„๋ฅ˜๋ฅผ ์ง€์›ํ•จ
  • ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ ํŠœ๋‹
    • n_estimators: ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ์—์„œ ๊ฒฐ์ • ํŠธ๋ฆฌ์˜ ๊ฐœ์ˆ˜ ์ง€์ •. ๋””ํดํŠธ 10๊ฐœ. ๋Š˜๋ฆด์ˆ˜๋ก ํ•™์Šต ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ.
    • max_features: ๊ฒฐ์ • ํŠธ๋ฆฌ์— ์‚ฌ์šฉ๋œ max_features ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ฐ™์Œ. ๋‹จ, ‘None’์ด ์•„๋‹Œ ‘auto’(=’sqrt’)์™€ ๊ฐ™์Œ
    • max_depth, min_samples_leaf: ๊ฒฐ์ • ํŠธ๋ฆฌ์—์„œ์˜ ๊ณผ์ ํ•ฉ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ์—๋„ ๋˜‘๊ฐ™์ด ์ ์šฉ๋  ์ˆ˜ O

 

๋ถ€์ŠคํŒ… boosting - GBM(Gradient Boosting Machine)

: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์•ฝํ•œ ํ•™์Šต๊ธฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•™์Šต—์˜ˆ์ธกํ•˜๋ฉด์„œ ์ž˜๋ชป ์˜ˆ์ธกํ•œ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜ ๋ถ€์—ฌ๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ๊ฐœ์„ ํ•ด ๊ฐ€๋ฉฐ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹์ธ ๋ถ€์ŠคํŒ….

  • ๋Œ€ํ‘œ์ ์ธ ๋ถ€์ŠคํŒ…์˜ ๊ตฌํ˜„์œผ๋กœ AdaBoost(Adaptive boosting)๊ณผ ๊ทธ๋ž˜๋””์–ธํŠธ ๋ถ€์ŠคํŠธ
    • AdaBoost: ์˜ค๋ฅ˜ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด์„œ ๋ถ€์ŠคํŒ…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ํšŒ์ฐจ๋ณ„๋กœ ์ž˜๋ชป๋œ ์˜ˆ์ธก์ด ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์˜ค๋ฅ˜ ๋ฐ์ดํ„ฐ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•ด ์•ฝํ•œ ํ•™์Šต๊ธฐ๊ฐ€ ์‰ฝ๊ฒŒ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
    • GBM: ์ „๋ฐ˜์ ์œผ๋กœ ์œ ์‚ฌํ•˜๋‚˜, ๊ฐ€์ค‘์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ์ด์šฉํ•จ.
      • ์˜ค๋ฅ˜ ๊ฐ’ = ์‹ค์ œ ๊ฐ’ - ์˜ˆ์ธก๊ฐ’
      • ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Gradient Descent): ์˜ค๋ฅ˜์‹์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์„ฑ์„ ๊ฐ€์ง€๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ.
      • ⇒ ๋ฐ˜๋ณต ์ˆ˜ํ–‰์„ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์ค‘์น˜์˜ ์—…๋ฐ์ดํŠธ ๊ฐ’์„ ๋„์ถœํ•˜๋Š” ๊ธฐ๋ฒ•
      • ๋ถ„๋ฅ˜์™€ ํšŒ๊ท€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•จ
      • ์‚ฌ์ดํ‚ท๋Ÿฐ์€ GradientBoostingClassifier ํด๋ž˜์Šค ์ œ๊ณต
    • ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ๋…ธ๋ ฅ๋„ ๋” ํ•„์š”ํ•จ
    • ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ๋ฌธ์ œ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๊ทน๋ณตํ•ด์•ผ ํ•  ๋ฌธ์ œ์ž„
    • ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ ํŠœ๋‹
      • loss: ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์—์„œ ์‚ฌ์šฉํ•  ๋น„์šฉ ํ•จ์ˆ˜๋ฅผ ์ง€์ •. ๊ธฐ๋ณธ๊ฐ’์€ ‘deviance’
      • learning_rate: GBM์ด ํ•™์Šต์„ ์ง„ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ ์šฉํ•˜๋Š” ํ•™์Šต๋ฅ . weak learner๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์˜ค๋ฅ˜ ๊ฐ’์„ ๋ณด์ •ํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐ ์ ์šฉํ•˜๋Š” ๊ณ„์ˆ˜. ๊ธฐ๋ณธ๊ฐ’์€ 0.1์ด๋ฉฐ ๋„ˆ๋ฌด ์ž‘์€ ๊ฐ’์„ ์ ์šฉํ•˜๋ฉด ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๊ฐ’์ด ์ž‘์•„์ ธ ์ตœ์†Œ ์˜ค๋ฅ˜๊ฐ’์„ ์ฐพ์•„ ์˜ˆ์ธก ์„ฑ๋Šฅ์ด ๋†’์•„์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ.
      • n_estimators์™€ ์ƒํ˜ธ ๋ณด์™„์ ์œผ๋กœ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•จ.
      • n_estimators: weak learner์˜ ๊ฐœ์ˆ˜. ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์˜ˆ์ธก ์„ฑ๋Šฅ์ด ์ผ์ • ์ˆ˜์ค€๊นŒ์ง€๋Š” ์ข‹์•„์งˆ ์ˆ˜ ์žˆ์Œ. ๊ทธ๋Ÿฌ๋‚˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ. ๊ธฐ๋ณธ๊ฐ’์€ 100.
      • subsample: weak learner๊ฐ€ ํ•™์Šต์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ƒ˜ํ”Œ๋ง ๋น„์œจ. ๊ธฐ๋ณธ๊ฐ’์€ 1๋กœ, ์ „์ฒด ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šตํ•œ๋‹ค๋Š” ์˜๋ฏธ.
      • max_features: ๊ฒฐ์ • ํŠธ๋ฆฌ์— ์‚ฌ์šฉ๋œ max_features ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ฐ™์Œ. ๋‹จ, ‘None’์ด ์•„๋‹Œ ‘auto’(=’sqrt’)์™€ ๊ฐ™์Œ
      • max_depth, min_samples_leaf: ๊ฒฐ์ • ํŠธ๋ฆฌ์—์„œ์˜ ๊ณผ์ ํ•ฉ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ์—๋„ ๋˜‘๊ฐ™์ด ์ ์šฉ๋  ์ˆ˜ O

 

XGBoost(eXtra Gradient Boost)

: ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์•™์ƒ๋ธ” ํ•™์Šต์—์„œ ๊ฐ€์žฅ ๊ฐ๊ด‘๋ฐ›๊ณ  ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜.

  • GBM์˜ ๋‹จ์ ์ธ ๋Š๋ฆฐ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ๋ฐ ๊ณผ์ ํ•ฉ ๊ทœ์ œ ๋ถ€์žฌ ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • ๋ณ‘๋ ฌ CPU ํ™˜๊ฒฝ์—์„œ ๋ณ‘๋ ฌ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ด ๋น ๋ฅด๊ฒŒ ํ•™์Šต์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฃผ์š” ์žฅ์ 
    • ๋›ฐ์–ด๋‚œ ์˜ˆ์ธก ์„ฑ๋Šฅ
    • GBM ๋Œ€๋น„ ๋น ๋ฅธ ์ˆ˜ํ–‰ ์‹œ๊ฐ„
    • ๊ณผ์ ํ•ฉ ๊ทœ์ œ
    • ๋‚˜๋ฌด ๊ฐ€์ง€์น˜๊ธฐ
    • ์ž์ฒด ๋‚ด์žฅ๋œ ๊ต์ฐจ ๊ฒ€์ฆ
    • ๊ฒฐ์†๊ฐ’ ์ž์ฒด ์ฒ˜๋ฆฌ
  • ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” C/C++๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋‚˜, ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€ ‘xgboost’๋„ ์ œ๊ณต

 

๋”๋ณด๊ธฐ

๐Ÿ—ฃ ์‹ค์งˆ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด๋ณด๋Š” ๊ณผ์ •์€ ์ดํ•ด๊ฐ€ ์–ด๋ ค์›Œ ๊นŠ์ด ๊ณต๋ถ€ํ•˜์ง€๋Š” ๋ชปํ–ˆ์–ด์š” ๐Ÿ˜”

 

์ถœ์ฒ˜: [ํŒŒ์ด์ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ์™„๋ฒฝ ๊ฐ€์ด๋“œ]