끄적이는 개발노트

260604_강의 정리 (DT와 Ensemble) 본문

머신러닝

260604_강의 정리 (DT와 Ensemble)

크런키스틱 2026. 6. 4. 09:43
728x90

 

machine learning · tree models
결정 트리와 앙상블 학습
  • 결정 트리의 구조와 주요 하이퍼파라미터 정리
  • Bagging·Boosting·Voting·Stacking의 개념과 차이
  • Random Forest, AdaBoost, Gradient Boosting 비교
🌳
1. 결정 트리(Decision Tree) 구조

"질문을 반복해 데이터를 분류하는 나무 구조" — 모든 트리 기반 모델의 기본 단위

  • Root Node — 트리의 최상단 시작 노드, 전체 데이터셋을 처음 분할하는 지점
  • Parent / Child Node — 분할 기준을 기준으로 상위/하위 관계로 연결된 노드
  • Leaf Node — 더 이상 분할되지 않는 말단 노드, 최종 예측값을 가짐
  • Depth — 루트 노드에서 리프 노드까지의 거리(층수)
💡 새 개념
불순도 기준 Criterion
  • Gini Impurity — 노드에서 무작위로 뽑은 샘플이 잘못 분류될 확률, 기본값
  • Entropy — 정보 이론 기반의 불순도 측정, 계산 비용이 다소 높음
  • Log Loss — 확률 기반 손실 함수로 측정
Gini가 0이면 해당 노드의 샘플이 모두 같은 클래스 → 완전히 순수한 노드
트리 구조 요약
· Root → Parent/Child 분기 반복 → Leaf에서 최종 예측
· Depth가 깊을수록 복잡한 패턴 학습 가능 → 과적합 위험 증가
⚙️
2. 트리의 주요 하이퍼파라미터와 규제

과적합을 막기 위한 트리 성장 제한 파라미터들

파라미터 설명 역할
n_estimators 앙상블에서 사용할 트리 개수 많을수록 안정적, 속도 저하
max_depth 트리의 최대 깊이 제한 과적합 방지
max_leaf_nodes 리프 노드의 최대 개수 트리 크기 직접 제한
max_features 각 노드 분할 시 사용할 특성 최대 수 다양성 증가, 과적합 방지
min_samples_split 노드 분할에 필요한 최소 샘플 수 작은 노드 분할 방지
min_samples_leaf 리프 노드가 가져야 할 최소 샘플 수 지나치게 작은 리프 방지
min_weight_fraction_leaf 가중치 부여 전체 샘플 수 대비 최소 비율 불균형 데이터 대응
규제 선택 기준
· 트리가 너무 깊어 과적합 발생 → max_depth 또는 max_leaf_nodes로 직접 제한
· 노이즈 샘플로 불필요한 분할 발생 → min_samples_split / min_samples_leaf 증가
🧩
3. 앙상블 학습(Ensembling) 개요

"혼자보다 함께가 강하다" — 여러 모델을 결합해 예측 성능을 높이는 전략

  • 단일 모델의 편향(Bias) 또는 분산(Variance) 문제를 보완하기 위해 여러 학습기를 결합함
  • 결합 방식에 따라 Bagging / Boosting / Voting / Stacking / Blending으로 구분됨
💡 새 개념
부트스트래핑 Bootstrapping
  • 원본 데이터에서 복원 추출(중복 허용)로 여러 개의 샘플 데이터셋을 만드는 방법
  • 다양한 학습 데이터를 확보해야 할 때 활용됨
100개 데이터에서 복원 추출 → 각기 다른 100개짜리 샘플 10개 생성
OOB 샘플 Out-of-Bag
  • 부트스트랩 샘플링 시 특정 트리의 학습에 포함되지 않은 나머지 약 36.8%의 데이터
  • 별도 검증 세트 없이 모델 성능 평가에 활용 가능함 → oob_score=True로 활성화
100개 중 복원추출 → 평균적으로 63.2%만 선택 → 나머지 36.8%가 OOB
메타 추정기 Meta-Estimator
  • 다른 모델(base model)을 입력받아 그 위에서 동작하는 모델
  • Voting, Stacking 등이 해당됨 — base model이 반드시 필요함
VotingClassifier(estimators=[rf, svm, lr]) → 세 모델을 묶어 투표
⚖️
4. Bagging vs Boosting

목적이 다른 두 가지 앙상블 전략 — 분산 감소 vs 편향 감소

Bagging Bootstrap Aggregation — 분산(Variance) 줄이기
부트스트랩 샘플로 독립적인 여러 트리를 병렬 학습한 뒤 결과를 평균냄
  • 각 트리를 독립적으로(병렬) 학습 → 빠른 속도, n_jobs로 병렬화 가능
  • 복원 추출(bootstrapping) + 열(feature) 무작위 선택으로 트리 다양성 확보
  • 최종 예측: 분류 → 다수결, 회귀 → 평균
  • 개별 트리의 높은 분산을 평균으로 상쇄 → 과적합에 강함
대표 알고리즘 — Random Forest
Boosting 약한 학습기 → 강한 학습기 — 편향(Bias) 줄이기
이전 모델의 실수를 다음 모델이 집중적으로 보완하며 순차 학습
  • 트리를 순차적으로 학습 → 이전 모델의 오류를 다음 모델이 집중 학습
  • AdaBoost: 틀린 샘플에 더 높은 가중치 부여 → 가중치 기반 오류 보완
  • Gradient Boosting: 잔차(오차)를 직접 학습 → 잔차 기반 오류 보완
  • 편향이 낮아져 정확도가 높아지나, 과적합 주의 필요
AdaBoost vs Gradient Boosting
· AdaBoost — 틀린 샘플의 가중치를 높여 다음 트리가 집중 학습
· Gradient Boosting — 이전 예측의 잔차(residual)를 다음 트리가 직접 학습
구분 Random Forest AdaBoost Gradient Boosting
방식 Bagging Boosting Boosting
학습 순서 병렬 순차 순차
핵심 전략 여러 트리 평균 틀린 샘플 가중치 증가 잔차(오차) 학습
주요 목표 분산 감소 편향 감소 편향 감소
🗳️
5. Voting · Blending · Stacking

서로 다른 유형의 모델을 결합하는 방법들

Voting 서로 다른 모델의 예측을 투표로 결합
  • Hard Voting — 각 모델의 예측 클래스 중 다수결로 최종 예측 결정
  • Soft Voting — 각 모델이 출력한 확률값을 평균(또는 가중 평균)하여 최종 예측
  • 일반적으로 확률 정보를 활용하는 Soft Voting이 성능이 더 높음
  • 메타 추정기(meta-estimator)의 일종 → base model 목록이 반드시 필요함
모델 A 예측
모델 B 예측
모델 C 예측
투표 → 최종 예측
Stacking 베이스 모델의 예측을 새로운 모델로 재학습
1층 모델들의 예측값을 입력 피처로 삼아 2층 메타 모델이 최종 예측
  • 교차검증(CV)으로 베이스 모델을 학습 → 각 fold의 예측값을 메타 모델의 학습 데이터로 사용
  • 데이터 누수(leakage) 없이 일반화 성능을 극대화할 수 있음
  • Blending은 CV 없이 홀드아웃 세트만 사용하는 Stacking의 간소화 버전
Stacking vs Blending
· Stacking — CV로 베이스 모델 학습 → 안정적, 구현 복잡
· Blending — CV 없이 홀드아웃 사용 → 구현 간단, 데이터 효율 낮음
📊
6. 빈도 → 확률 → 확률 보정

트리 모델의 출력값이 신뢰할 수 있는 확률이 되도록 조정하는 과정

  • 결정 트리는 빈도(frequency) 기반으로 리프 노드의 클래스 비율을 확률로 출력함
  • 하지만 트리 모델의 확률은 과도하게 0 또는 1에 치우치는 경향이 있어 신뢰도가 낮음
  • 확률 보정(Calibration)으로 실제 발생 빈도와 예측 확률을 일치시켜 신뢰도 향상
리프 노드 빈도 집계
클래스 비율 = 확률
Calibration 적용
보정된 확률 출력
보정 방법
· Platt Scaling — 로지스틱 회귀로 확률 보정 (출력이 sigmoid 형태일 때 적합)
· Isotonic Regression — 비모수적 방법, 데이터가 충분할 때 더 유연한 보정 가능
📝
7. 핵심 요약
🌳 Random Forest
Bagging 기반
분산 감소
병렬 학습
OOB 검증 가능
⚡ AdaBoost
Boosting 기반
편향 감소
순차 학습
가중치로 오류 보완
📈 Gradient Boosting
Boosting 기반
편향 감소
순차 학습
잔차로 오류 보완
🗳️ Voting
이종 모델 결합
Hard/Soft 방식
메타 추정기
base model 필요
🔗 Stacking
CV로 베이스 학습
메타 모델 재학습
Blending은 간소화 버전
앙상블 선택 기준
· 과적합(high variance) 문제 → Bagging (Random Forest)
· 과소적합(high bias) 문제 → Boosting (AdaBoost, GBM)
· 다양한 모델을 이미 보유 → Voting / Stacking
Random Forest AdaBoost Gradient Boosting Voting Stacking Bootstrapping OOB Score Calibration
728x90