Theo Lee
[ML] Decision Tree의 모든 것: 기본 개념부터 Random Forest, XGBoost, Stacking까지 총정리
Thumbnail
by theolee72 Thursday, Dec 11 2025
like
0
reviews
0
share
0

머신러닝을 공부하다 보면 가장 직관적이면서도 강력한 알고리즘인 Decision Tree(의사결정나무)를 만나게 된다. 하지만 실무나 캐글(Kaggle) 같은 대회에서는 Decision Tree 하나만 쓰기보다는 이를 발전시킨 Random Forest나 XGBoost 같은 앙상블 모델을 주로 사용한다.

오늘은 Decision Tree의 핵심 원리부터 시작해서, 왜 이 모델이 Low Bias, High Variance 모델인지, 그리고 이를 극복하기 위해 나온 Bagging, Boosting, Stacking 기법까지 하나의 흐름으로 정리한다.

1. Decision Tree (의사결정나무)란?

Decision Tree는 쉽게 말해 "스무고개" 게임과 같다. 데이터를 가장 잘 구분할 수 있는 질문을 계속 던져가며 마지막에 정답을 맞히는 방식이다.

1) 작동 원리: Classification vs Regression

Tree는 목적에 따라 두 가지로 나뉜다.

2) 학습 방법: 어떻게 쪼갤 것인가? (Tree Growing)

Tree는 데이터를 나눌 때 **"어떤 질문(Feature & Split point)으로 나눠야 가장 깔끔하게(Homogenous) 나뀔까?"**를 고민한다. 이때 **Greedy Algorithm(탐욕 알고리즘)**을 사용한다. 즉, 당장의 분기점에서 Loss Function을 가장 크게 줄이는 최적의 선택을 한다.

① Classification의 기준: Gini Index & Cross-Entropy

분류 문제에서는 불순도(Impurity)를 낮추는 방향으로 학습한다.

② Regression의 기준: RSS (Residual Sum of Squares)

회귀 문제에서는 오차를 줄여야 한다. 이를 위해 Recursive Binary Splitting을 사용한다.

 

$$RSS = \sum_{j=1}^J \sum_{i \in R_j} (y_i - \hat{y}_{R_j})^2$$