Training Data๋ฅผ ์ฌ์ฉํด์ Decision Tree๋ฅผ Top-down ๋ฐฉ์์ผ๋ก ํ์ตํ๋ ๊ฒ์ ๋ดค๋ค
ํ์ต์ ์ธ์ ์ข
๋ฃํ๋ ๊ฒ์ด ์ข์๊น?
๋
ธ๋์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ Class๋ฅผ ๊ฐ์ง ๋๊น์ง ๋ถ๋ฅํ๋ค
๊ทธ๋ฌ๋ฉด ํ์ต ๋ฐ์ดํฐ์ ๋ํด์ 100% ๋ถ๋ฅ ์ ํ๋๋ฅผ ๋ณด์ด๋ Decision Tree๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋๋ค
- ์์ฒ๋ผ ํ์ต์ด ๋๋ฉด ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๋ํด 100% ์ ํํ ๋ถ๋ฅํ๋ Decision Tree๊ฐ ํ์ต๋์๋ค
- ์ด๊ฒ ๊ณผ์ฐ ์ข์ ๊ฒ์ผ๊น? ์๋๋ค. Overfitting์ด ๋ ๊ฒ ์ด๋ค
Overfitting of Decision Tree Models
Decision Tree๋ Overfitting์ด ๋ฐ์ํ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค
- Overfitting์ด ๋๋ค๋ ๊ฒ์ ์ ๋ฌธ์ ์ผ๊น
- ๋๋ฌด ๋ง์ Branch๊ฐ ์๊ธฐ๊ฒ ๋๊ณ , Noise๋ Outlier์ ๊ฐ์ ์ด์ํ ๋ฐ์ดํฐ๋ค๋ ๋ชจ๋ ๋ฐ์์ด ๋๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ๋ฐ์ดํฐ์ ๋ํด ์ ํํ ๋ถ๋ฅํ์ง ๋ชปํ ์ ์๋ค
- ๊ทธ๋ผ ์ด๋ป๊ฒ?
- Overfitting์ด ๋๊ธฐ ์ ์ ์ค๋จ์ ํด์ผ ํ๋ค
Tree Pruning
๋๋ฌด ๊ฐ์ง์น๊ธฐ
- Overfitting์ด ๋๋ค๋ ๊ฒ์ Decistion Tree์ ๋๋ฌด ๋ง์ Branch๊ฐ ์๊ธด๋ค๊ณ ํ๋ค
- ๊ทธ๋ผ ๊ฐ์ง์น๊ธฐ ๋ฅผ ํด์ฃผ๋ฉด Overfitting์ ๋ง์์ค ๊ฒ์ด๋ค
- Overfitting์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฒ์๋ 2๊ฐ์ง ์ ๋๊ฐ ์๋ค
- Pre-pruning: Tree์ ์์ฑ์ ์ผ์ฐ ์ค๋จํ๋ ๊ฒ ์ด๋ค
- ํน์ ์๊ณ์น ์ด์์ผ๋ก ๋ถ๋ฅ๊ฐ ๋์๋ค๋ฉด, ๋ ์ด์ Recursiveํ๊ฒ ๋ค์ด๊ฐ์ง ์๊ณ Split์ ์ค๋จํ๋ค
- ์ ์ ํ ์๊ณ์น๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค
- Minimum samples split, Maximum tree depth, Minimum gain,,,
- ์ด ์ค์ ์ด๋ค ๊ฒ์ Pruning์ ๊ธฐ์ค์ผ๋ก ์ก์์ผ ํ ์ง ๊ฒฐ์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค
- Post-pruning: ์ผ๋จ Tree๋ฅผ ์์ฑํ๊ณ Branch๋ค์ ์ ๊ฑฐ ํ๋ ๋ฐฉ๋ฒ
- Testset ์ค์ ์ผ๋ถ๋ฅผ Validation set์ผ๋ก ์ฌ์ฉํด์ Pruning์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค
- Validation set์ ๋ํด์ Pruning ํ์ ์ฑ๋ฅ์ด ๋ ์ข์ผ๋ฉด Pruning์ ์ํ ๊ฒ์ด๋ค
- ์ด์ ๋ Pruning์ ํ๋ ๊ฒ์ด ์คํ๋ ค ์ฑ๋ฅ์ ์ ํ์ํจ๋ค๊ณ ํ๋จ๋ ๋๊น์ง ๊ฐ์ง์น๊ธฐ๋ฅผ ํ๋ค
- Pre-pruning: Tree์ ์์ฑ์ ์ผ์ฐ ์ค๋จํ๋ ๊ฒ ์ด๋ค
Random Forest
Overfitting์ ํผํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ผ๋ก ์๊ฐ๋๊ณ ์๋ค
- Radom Forest๋ Decision Tree์ ์์๋ธ(Ensemble) ๋ฒ์ ์ด๋ค
- ์์๋ธ์ ์ฌ๋ฌ ๊ฐ์ ์ฝํ ๋ถ๋ฅ๊ธฐ๋ฅผ ์์ฑํ๊ณ , ๊ฐ๊ฐ์ ์์ธก์ ๊ฒฐํฉํจ์ผ๋ก์จ ๋จ์ผ ๋ถ๋ฅ๊ธฐ๋ณด๋ค ์ ๋ขฐ์ฑ์ด ๋์ ์ต์ข ์์ธก ๊ฐ์ ์ป์ด๋ด๋ ๊ธฐ๋ฒ
- Forest?
- Decision Tree๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํ๋ ๊ฒ
- ์ฌ๋ฌ ๊ฐ์ Decision Tree๊ฐ ๊ฒฐ์ ํ Decision์ ์ข ํฉ(Aggregation)ํด์ ์ต์ข ๊ฒฐ๊ณผ๋ก ์ฐ์ ํ๋ค
- Original Data๋ก๋ถํฐ ๋๋คํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋ฝ๋๋ค
- ์ด๊ฑธ N๋ฒ ๋ฐ๋ณตํ๋ฉด, N๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ Sample์ด ์์ฑ๋ ๊ฒ์ด๋ค
- ์ด๋ ๊ฒ ์์ฑํ ์ํ์ Bootstrap Sample์ด๋ผ๊ณ ํ๋ค
- ์ด๋ Sub Training Dataset(Bootstrap Sample)์ Original Dataset๊ณผ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ก ์ํ๋ง ํด์ผํ๋ค
- ๋จ, ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์ํ๋ง๋๋ ๊ฒ์ ํ์ฉ ํ๋ค
- ํ์ต ๋ฐ์ดํฐ์ Randomness๋ฅผ ๋ํด์ฃผ๋ ๋ฐฉ์
- ์๋๋ Decision Tree๋ฅผ ํ์ฑํ ๋, ์ ์ฒด Feature์ ๋ํด์ ์ต์ ์ Feature๋ฅผ ์ฐพ์์ Split์ ํ๋ค
- ๊ทธ๋ฐ๋ฐ Tree๋ฅผ ์์ฑํ๋ ๊ณผ์ ์๋ Randomness๋ฅผ ๋ํด์ฃผ์ด์, Overfitting์ ๋ฐฉ์งํ๋ค
- ๊ฐ Recursion๋ง๋ค ํ๋ณด๊ตฐ Feature๋ฅผ ๋๋คํ๊ฒ ๋ฝ๋๋ค
- ๋๋คํ๊ฒ ๋ฝํ ํ๋ณด๊ตฐ ์ค์์ ์ต์ ์ Feature๋ฅผ ์ฐพ๊ณ , ํด๋น Feature๋ก Split์ ํ๋ค
Aggregation
๊ฐ๊ฐ์ ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด๋ธ ๊ฒฐ์ ์ ์ด๋ป๊ฒ ์ข ํฉํด์ ์ต์ข ์ ์ผ๋ก ํ๋์ ๊ฒฐ์ ์ ๋ด๋ฆด ๊ฒ์ธ๊ฐ
Majority Voting
- ๊ฐ๊ฐ์ ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด๋ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ๋ ๋ง์ด vote๋ ์ชฝ์ผ๋ก ๊ฒฐ์ (๋ค์๊ฒฐ)
- ๊ฐ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๊ณ ๋ คํ์ง ์๊ณ , ์ค์ง ๊ฒฐ๊ณผ๋ง ๋ณด๊ณ ํ๋จ์ ํ๋ค
- ๋ชจ๋ ํ๊ฐ ๋์ผํ ํ์ ๊ฐ์ง๋ค
Weighted Voting
- ๊ฐ๊ฐ์ ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด๋ธ ๊ฒฐ๊ณผ์, ๊ฐ ํธ๋ฆฌ์ Training Accuracy๋ฅผ ํจ๊ป ๊ณ ๋ คํด์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ค
- ๊ฐ์ค์น๋ฅผ ์ค์ ํ์ฌ ์ต์ข
Label์ ๊ฒฐ์
- Training Accuracy๊ฐ ๋์ ๋ชจ๋ธ์ ํ๊ฐ ๋ ํฐ ํ์ ๊ฐ์ง๋ค
์ ๋ฆฌ
- Decision Tree Model
- Recursiveํ๊ฒ ๊ฐ ๋จ๊ณ์์ ์ต์ ์ Feature๋ฅผ ์ ํํ์ฌ ๋ถ๋ฆฌํ๋ ๊ทธ๋ฆฌ๋ํ ๋ฐฉ์
- ์ต์ ์ Feature๋ฅผ ์ ํํ๋ ๊ธฐ์ค์ Information Gain, Gain Ratio, Entropy, Gini Index ๋ฑ ๋ค์ํ๋ค
- Overfitting์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- Tree Pruning
- Random Forest
- Random Forest
- 500 ~ 10,000๊ฐ ์ ๋์ Tree๋ฅผ ์์๋ธํ์ฌ ๋ ์ด๋ธ์ ๊ฒฐ์
- ๊ฐ๊ฐ์ Tree๋ Bootstrapped sample์ ๊ฐ์ง๊ณ ํ์ต๋๋ค
- ๊ฐ Tree๋ฅผ ์์ฑํ ๋, ๋๋คํ๊ฒ ์ ํํ Feature๋ฅผ ์ด์ฉํด์ Tree๋ฅผ ๋ง๋ ๋ค
- Sample์ Tree๋ฅผ ์์ฑํ๋ ๊ณผ์ ๋ชจ๋์ ๋ฌด์์์ฑ์ ๋ํด์ฃผ์ด Overfitting์ ๋ฐฉ์ง
Reference
[ML] RandomForest(๋๋คํฌ๋ ์คํธ)
์ด์ฝ๋๋ฌด์ฒ๋ณด๋ค ๋ฌ๋ฌํ ์ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก '๋ฌด์์ ์ฒ(Random Forest)' ์ ๋๋ค!
velog.io
'HYU > ๋ฐ์ดํฐ์ฌ์ด์ธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
12. Evaluation & Ensemble (0) | 2024.04.16 |
---|---|
11. Rule Based Classification (0) | 2024.04.14 |
9. Decision Tree (0) | 2024.04.13 |
8. Classification (0) | 2024.04.13 |
7. Association Rules (0) | 2024.04.13 |