1. 의사결정 트리란 무엇인가?
- 의사결정 트리(Decision Tree)는 데이터를 분할해가며 예측을 수행하는 트리 기반 모델이다.
- 루트 노드(root node)부터 시작해 각 결정 노드(decision node)에서 특정 특성(feature)을 기준으로 데이터를 분할하며, 마지막 리프 노드(leaf node)에서 예측 값을 출력한다.
예: 귀 모양, 얼굴 모양, 수염 여부 등의 특성으로 고양이인지 아닌지를 분류
2. 의사결정 트리 학습 과정
2.1. 트리 구성 단계
-
루트 노드에서 어떤 특성(feature)으로 분할할지 선택
-
선택된 특성 값을 기준으로 데이터 분할
-
각 하위 노드에 대해 위 과정을 반복 (재귀적 트리 생성)
-
리프 노드 조건:
- 모든 데이터가 하나의 클래스일 경우
- 트리의 최대 깊이 도달
- 정보 이득(information gain)이 임계값 이하
- 노드 내 샘플 수가 최소 임계값보다 작을 경우
2.3. 연속형 변수 처리
- 연속형 변수는 다양한 임계값(threshold)을 기준으로 분할
- 예: 무게 ≤ 9 또는 > 9
- 각 임계값마다 정보 이득을 계산하여 가장 큰 정보 이득을 주는 값을 선택
2.4. 범주형 변수 처리
- 범주형 변수가 셋 이상의 값을 가질 경우, 원-핫 인코딩(One-hot encoding)을 사용
- 각 카테고리를 0 또는 1로 인코딩하여 의사결정 트리 학습에 사용
3. 트리 앙상블 (Tree Ensembles)
3.1. 단일 트리의 한계
- 하나의 의사결정 트리는 훈련 데이터에 민감해 overfitting 또는 underfitting 가능성 있음
- 해결책: 여러 개의 트리를 결합해 예측 성능을 향상
3.2. 배깅 (Bagging)과 랜덤 포레스트 (Random Forest)
3.3. 부스팅 (Boosting)과 XGBoost
from xgboost import XGBClassifier
model = XGBClassifier()
model.fit(X_train, y_train)
4. 분류 트리 vs 회귀 트리
5. 장단점 및 사용 시기
장점
- 빠른 학습 속도
- 비교적 쉬운 해석 가능성 (작은 트리)
- 정형 데이터(스프레드시트 형태)에 효과적
단점
- 단일 트리는 데이터에 민감하고 불안정할 수 있음
- 트리 앙상블은 해석이 어려움
사용 추천 상황
- 정형 데이터가 있는 경우 → 의사결정 트리 또는 XGBoost
- 이미지, 오디오, 텍스트 등 비정형 데이터 → 신경망(Neural Network)