개발로그필름
[ML] 결정나무란? 본문
728x90
반응형
SMALL
머신러닝에서 많이 사용되는 지도학습 알고리즘 중 하나로, 주로 분류(classification)와 회귀(regression) 문제를 해결할 때 사용된다
이름처럼 나무(Tree) 구조를 가지며, 조건에 따라 데이터를 분기(split) 해가며 최종적인 예측 결과(클래스 또는 값)를 도출한다
반응형
1. 결정나무란?
- 결정나무는 질문을 통해 데이터를 나눠가는 방식
- ex) “기온이 25도 이상인가요?” → “네”면 오른쪽, “아니오”면 왼쪽으로 나뉘는 식
이렇게 질문을 이어가면서 분기점(node) 을 만들고, 마지막 결과에 도달하는 말단 노드(leaf node) 에서 예측값이 나온다
2. 결정나무 구조
- 루트 노드 (Root Node)
- 트리의 맨 위 노드. 첫 번째 조건이 위치
- 내부 노드 (Internal Nodes)
- 중간에 존재하는 조건 분기점. 각 노드는 하나의 조건(특성의 기준값)을 기반으로 데이터를 나눈다.
- 잎 노드 / 리프 노드 (Leaf Nodes)
- 더 이상 나눌 수 없는 노드. 이곳에서 예측 값이 결정된다.
3. 결정 기준 (데이터 분할 기준)
결정나무는 데이터를 나눌 때 가장 “순수하게” 나눌 수 있는 기준을 선택한다
분류(Classification)일 경우
- 지니 불순도(Gini Impurity)
- 클래스가 섞여 있을 확률을 계산
- 엔트로피(Entropy)
- 정보 이득(Information Gain)을 기반으로 분할
회귀(Regression)일 경우
- 분산(Variance) 감소
- 분기 전과 후의 평균 제곱 오차(MSE) 감소량을 기준으로 한다
4. 분할 예시
날씨 |
기온 | 운동 여부 |
맑음 | 30도 | O |
흐림 | 20도 | X |
비 | 18도 | X |
맑음 | 25도 | O |
→ 첫 번째 분할 기준을 “날씨 == 맑음”으로 하면, 운동 여부가 O로 더 많이 나오는 그룹과 X가 더 많은 그룹으로 나뉠것
5. 과적합 방지 (Pruning)
결정나무는 데이터에 너무 잘 맞추다 보면 과적합(overfitting) 이 발생할 수 있다
이를 방지하기 위해
- 사전 가지치기(Pre-pruning)
- 트리를 만들 때 최대 깊이 제한, 최소 샘플 수 제한 등을 두는 방식
- 사후 가지치기(Post-pruning)
- 완성된 트리에서 의미 없는 노드를 제거하는 방식
6. 장점 vs 단점
장점 |
단점 |
해석이 쉽고 시각화가 쉬움 | 과적합 가능성이 높음 |
수치형/범주형 모두 처리 가능 | 작은 변화에 민감함 |
전처리가 적음 | 불균형 데이터에 취약 |
7. 결정나무 구현 예 (Python + scikit-learn)
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
# 데이터 불러오기
iris = load_iris()
X = iris.data
y = iris.target
# 학습/테스트 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 모델 생성 및 학습
clf = DecisionTreeClassifier(max_depth=3)
clf.fit(X_train, y_train)
# 예측
y_pred = clf.predict(X_test)
8. 시각화 예시
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
plt.show()
9. 대표 응용 분야
- 의료: 병 진단 (예: 증상에 따른 병명 분류)
- 금융: 대출 승인 여부
- 마케팅: 고객 이탈 예측
- 제조: 불량품 분류
➕ 보충 학습
- 결정나무는 앙상블 기법의 기반이 되기도 한다
- 랜덤포레스트(Random Forest), 그래디언트 부스팅(Gradient Boosting) 등
반응형
LIST
'ML' 카테고리의 다른 글
[ML] 앙상블이란? (0) | 2025.05.25 |
---|---|
[ML] 결정트리회귀란? (0) | 2025.05.24 |
[ML] 결정나무의 주요 특징 (0) | 2025.05.24 |
[ML] 과소적합 vs 과대적합 (0) | 2025.05.23 |
[ML] 원 핫 인코딩 (One-Hot Encoding) (0) | 2025.05.22 |
Comments