이론공부/ML

DT vs RF

Zziii 2025. 1. 3. 22:07
728x90
반응형

1. Decision Tree (결정 트리)

  • Decision Tree는 데이터를 기반으로 의사 결정 규칙을 계층적으로 학습하여 예측하는 기초적인 지도 학습 알고리즘
  • 데이터를 특정 특성(Feature)으로 나누는 과정(분할)을 반복하여 트리 구조를 형성
  • 트리의 리프 노드는 최종 예측값(분류나 회귀)을 나타냄

작동 원리

  1. 데이터를 여러 특성을 기준으로 분할하여 불순도(Entropy, Gini Impurity)를 최소화
  2. 각 분할 단계에서 최적의 분할 기준(특성 및 임계값)을 선택
  3. 분할을 반복하여 데이터를 점점 더 세부적으로 나눔

특징

  • 장점:
    • 직관적이고 이해하기 쉬운 모델
    • 비선형 관계를 처리 가능
    • 범주형 및 연속형 데이터 모두 사용 가능
  • 단점:
    • 과적합(Overfitting)의 가능성이 높음
    • 데이터의 작은 변화에도 민감하여 불안정

사용 예제

  • 데이터 세트: 의사 결정 나무를 사용해 이진 분류 또는 회귀 수행
python
코드 복사
from sklearn.tree import DecisionTreeClassifier

# 데이터 및 모델 생성
clf = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=42)
clf.fit(X_train, y_train)

# 예측
predictions = clf.predict(X_test)


2. Random Forest (랜덤 포레스트)

설명

  • Random Forest는 여러 개의 결정 트리를 생성하고, 이를 앙상블(Ensemble)하여 최종 예측을 수행하는 알고리즘
  • 개별 트리의 예측 결과를 합산(분류: 다수결, 회귀: 평균)하여 최종 결과를 출력

작동 원리

  1. Bootstrap Aggregation:
    • 훈련 데이터를 무작위로 샘플링하여 각 트리에 서로 다른 훈련 세트를 제공
  2. Random Feature Selection:
    • 각 트리에서 노드 분할 시 전체 특성 중 무작위로 선택된 일부 특성만 사용
  3. 예측 앙상블:
    • 모든 트리의 예측 결과를 종합하여 최종 결과 결정

특징

  • 장점:
    • 과적합을 줄이는 데 효과적
    • 데이터의 소음에 강하고 일반화 성능이 뛰어남
    • 특성 중요도를 제공하여 해석 가능
  • 단점:
    • 계산 비용이 높음(많은 트리 생성)
    • 직관적으로 이해하기 어려움

사용 예제

  • 데이터 세트: 랜덤 포레스트를 사용해 분류 또는 회귀 수행
python
코드 복사
from sklearn.ensemble import RandomForestClassifier

# 데이터 및 모델 생성
clf = RandomForestClassifier(n_estimators=100, max_depth=3, random_state=42)
clf.fit(X_train, y_train)

# 예측
predictions = clf.predict(X_test)

728x90
반응형

'이론공부 > ML' 카테고리의 다른 글

Catboost 모델 (배깅, 부스팅 간단 요약)  (0) 2023.04.19
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });