[ML] Random Forest

๋ฏธ๋‚จ์ž‰ยท2022๋…„ 3์›” 9์ผ
0

Reference

๐Ÿ’ป ๋”ฅ๋Ÿฌ๋‹์˜ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด๋ฅผ ์œ„ํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฐ•์˜ 4-2
๐Ÿ”— ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ - ์œ„ํ‚ค๋ฐฑ๊ณผ

์ด๋ฒˆ์— ์ •๋ฆฌํ•  ๊ฐœ๋… Random Forest๋Š” ์•ž์„œ ํฌ์ŠคํŒ…ํ•œ Decsion Tree์™€ ํ๋ฆ„์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค. Decision tree๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅธ๋‹ค๋ฉด ์ฐธ๊ณ ํ•˜์‹œ๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ฆฌ๊ณ , ๋Œ€์ถฉ ๊ฐœ๋…์„ ์•„์‹ ๋‹ค๋ฉด ์ฐธ๊ณ  ์•ˆ ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์œ„ Reference๋กœ ๋‚จ๊ธด ๊ฐ•์˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Œ์„ ๋ฐํž™๋‹ˆ๋‹ค.


Random Forest

random forest๋„ ๋จธ์‹ ๋Ÿฌ๋‹์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๊ฐ๊ฐ์˜ decision tree๋ฅผ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ํ•™์Šตํ•œ ๋‹ค์Œ์— decision tree์—์„œ ์–ป์€ ๊ฒฐ๊ณผ๊ฐ’๋“ค์„ averagingํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • decision tree๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•™์Šต ์†๋„๊ฐ€ ๋นจ๋ผ random forest๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ensemble model, averaging๊ณผ stacking์ด ๊ฐ€์ง€๋Š” ์ตœ๋Œ€ ์žฅ์ ์ธ ๋™์‹œ์— ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ž‘๋™ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  • decision tree๋ฅผ ๊ทธ๋Œ€๋กœ random forest์˜ ํ•œ ๊ฐœ ๋ชจ๋ธ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ classifier๊ฐ€ ๋น„์Šทํ•œ prediction์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ decision tree๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ˆ์ธก๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด Bootstrappimg๊ณผ random tree๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Bootstrap sampling

bootstrap sampling์€ ์–ด๋–ค ๋ฐ์ดํ„ฐ์…‹์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์„ randomํ•˜๊ฒŒ ํŠน์ • ๊ฐœ์ˆ˜๋งŒํผ์˜ sample์„ ์ถ”์ถœํ•˜๊ณ , ๊ทธ ๊ณผ์ •์—์„œ ๋˜‘๊ฐ™์€ sample์ด ๋‘ ๋ฒˆ ์ถ”์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์›ƒ๋ผ์ด์–ด(Outlier)๊ฐ€ ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ ์ ์šฉํ•˜๊ธฐ ์ข‹์œผ๋ฉฐ,๊ณ„์‚ฐ๋Ÿ‰์ด๋‚˜ ์†๋„๋ฅผ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Bagging

bagging์€ ๊ฐ๊ฐ์˜ classifier๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ํ•™์Šต๋˜์–ด ์„œ๋กœ ๋‹ค๋ฅธ ์˜ˆ์ธก๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๊ฐ’๋“ค์„ ๋ชจ๋‘ ๋ฌถ์–ด ์ตœ์ข…์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์˜ˆ์ธก๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.


Random trees

Random trees๋Š” decision tree์™€ ๋™์ผํ•œ ๊ตฌ์กฐ์ง€๋งŒ splitting algorithm์˜ ๋‹จ์ˆœํ™”์—์„œ ์ฐจ์ด๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค.

์•ž์„œ ๊ณต๋ถ€ํ•œ Decision Tree์˜ ๊ฒฝ์šฐ์—๋Š” feature ํƒ€์ž…๊ณผ threshold๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“์€ splitting algorithm์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ, 1:1 ๋น„์œจ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ํ•œ ๊ฐœ์˜ sample๋งŒ ํ•œ์ชฝ์œผ๋กœ ๋”ฐ๋กœ ๊ฐ€๋„๋ก ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ random forest๋Š” feature type์„ randomํ•˜๊ฒŒ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ํ•  ๋•Œ feature type์„ ์ •ํ•ด๋†“๊ณ  ์‹œ์ž‘ํ•˜๊ณ  ๋‹น์—ฐํžˆ ์†๋„๊ฐ€ ๋” ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ random tree๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์–ป์„ ๋Œ€๋งˆ๋‹ค ์„ ํƒ๋˜๋Š” feature type์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ensemble model ๋‚ด์— ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ decision trees๊ฐ€ ๋ชจ๋‘ ๋…๋ฆฝ์ ์ธ classifier๋กœ ๋™์ž‘ํ•  ํ™•๋ฅ  ๊ฐ€๋Šฅ์„ฑ์ด ํ›จ์”ฌ ๋” ์ปค์ง‘๋‹ˆ๋‹ค.

๋” ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•˜์ž๋ฉด, decision tree๋“ค ๊ฐ„์˜ ์˜์กด์„ฑ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค๊ณ  ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Bagging + Random trees

์„œ๋กœ ๋‹ค๋ฅธ random tree๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„์ ์ธ random tree๋Š” ์„œ๋กœ ๋‹ค๋ฅธ bootstrap ๋ฐ์ดํ„ฐ์…‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šต๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ •๋ฆฌ

Random forest๋Š” ๋‹ค์ˆ˜์˜ decision tree๋ฅผ ํ•™์Šตํ•˜๋Š” ensemble model์ž…๋‹ˆ๋‹ค.

decision tree๋ฅผ ์ด์šฉํ–ˆ์„ ๋•Œ, ๊ทธ ๊ฒฐ๊ณผ๋‚˜ ์„ฑ๋Šฅ ๋ณ€๋™ ํญ์ด ํฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์–ด์„œ

ํ•™์Šต ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ƒ์„ฑ๋˜๋Š” decision tree์˜ randomํ•œ ์„ฑ๊ฒฉ์„ ์ผ๋ฐ˜ํ™”ํ•˜๊ธฐ ์œ„ํ•ด random forest ๋ฐฉ๋ฒ•์ด ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

bootstrap sampling ํ›„ baggingํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋‹จ์ ์„ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค.

์œ„ํ‚ค๋ฐฑ๊ณผ์˜ ์„ค๋ช…์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋ฉด

๋ฐฐ๊น…(bagging)์€ bootstrap aggregating์˜ ์•ฝ์ž๋กœ, ๋ถ€ํŠธ์ŠคํŠธ๋žฉ(bootstrap)์„ ํ†ตํ•ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅธ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํ›ˆ๋ จ๋œ ๊ธฐ์ดˆ ๋ถ„๋ฅ˜๊ธฐ(base learner)๋“ค์„ ๊ฒฐํ•ฉ(aggregating)์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

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

  1. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด TT๊ฐœ์˜ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์…‹์„ ์ƒ์„ฑํ•œ๋‹ค.
  2. TT๊ฐœ์˜ ๊ธฐ์ดˆ ๋ถ„๋ฅ˜๊ธฐ(ํŠธ๋ฆฌ)๋“ค์„ ํ›ˆ๋ จ์‹œํ‚จ๋‹ค.
  3. ๊ธฐ์ดˆ ๋ถ„๋ฅ˜๊ธฐ(ํŠธ๋ฆฌ)๋“ค์„ ํ•˜๋‚˜์˜ ๋ถ„๋ฅ˜๊ธฐ(๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ)๋กœ ๊ฒฐํ•ฉํ•œ๋‹ค(ํ‰๊ท  ๋˜๋Š” ๊ณผ๋ฐ˜์ˆ˜ํˆฌํ‘œ ๋ฐฉ์‹ ์ด์šฉ).

ํŠธ๋ฆฌ๋Š” ์ž‘์€ ํ‰๊ท ๊ณผ ํฐ ๋ถ„์‚ฐ(variance)์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์—, ๋งค์šฐ ๊นŠ์ด ์„ฑ์žฅํ•œ ํŠธ๋ฆฌ๋Š” ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ณผ์ ํ•ฉ(overfitting)ํ•˜๊ฒŒ ๋œ๋‹ค.

๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๊ณผ์ •์€ ํŠธ๋ฆฌ๋“ค์˜ ํŽธํ–ฅ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ, ๋ถ„์‚ฐ์€ ๊ฐ์†Œ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ํฌ๋ ˆ์ŠคํŠธ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

์ฆ‰, ํ•œ ๊ฐœ์˜ ๊ฒฐ์ • ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ๋…ธ์ด์ฆˆ์— ๋Œ€ํ•ด์„œ ๋งค์šฐ ๋ฏผ๊ฐํ•˜์ง€๋งŒ, ํŠธ๋ฆฌ๋“ค์ด ์„œ๋กœ ์ƒ๊ด€ํ™”(correlated)๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์—ฌ๋Ÿฌ ํŠธ๋ฆฌ๋“ค์˜ ํ‰๊ท ์€ ๋…ธ์ด์ฆˆ์— ๋Œ€ํ•ด ๊ฐ•์ธํ•ด์ง„๋‹ค.

ํฌ๋ ˆ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ํŠธ๋ฆฌ๋“ค์„ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ๋งŒ ํ›ˆ๋ จ์‹œํ‚ค๊ฒŒ ๋˜๋ฉด, ํŠธ๋ฆฌ๋“ค์˜ ์ƒ๊ด€์„ฑ(correlation)์€ ๊ต‰์žฅํžˆ ์ปค์งˆ ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋ฐฐ๊น…์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์…‹๋“ค์— ๋Œ€ํ•ด ํ›ˆ๋ จ ์‹œํ‚ด์œผ๋กœ์จ, ํŠธ๋ฆฌ๋“ค์„ ๋น„์ƒ๊ด€ํ™”์‹œ์ผœ ์ฃผ๋Š” ๊ณผ์ •์ด๋‹ค.

profile
Tistory๋กœ ์ด์‚ฌ๊ฐ”์–ด์š”

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