개발로그필름

[ML] 결정나무란? 본문

ML

[ML] 결정나무란?

yuullog 2025. 5. 21. 13:14
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