의사결정나무(Decision Tree) 완전 정리_ADsP 3과목

🌳 의사결정나무(Decision Tree) 완전 정리 💡

“질문을 따라가며 예측하는 가장 직관적인 머신러닝 모델!”


🎯 1️⃣ 의사결정나무란?

의사결정나무는 데이터를 질문(조건) 으로 계속 쪼개면서

최종적으로 “Yes/No” 혹은 “숫자값”을 예측하는 모델이에요 ✨

👉 사람이 이해하기 쉬운 ‘If → Then’ 규칙으로 표현돼서

데이터 기반 의사결정과 해석에 매우 유용하답니다 💬

예시 👇

💡 “월요금이 5만 원 초과인가?”

→ 예라면 “이탈 위험 높음”, 아니면 “이탈 위험 낮음”


🧠 2️⃣ 어떻게 나무가 만들어질까?

의사결정나무는 데이터를 계속 나누며 “순도를 높이는 방향” 으로 성장해요 🍃

  • 불순도(Impurity): 한 노드 안에 여러 클래스가 섞여 있을수록 불순
  • 순도(Purity): 한 클래스가 대부분이면 순수

따라서 나무는 “불순도를 가장 크게 줄이는 분기점”을 선택합니다!

종류수식설명
🌱 지니불순도 (Gini)1 − Σp²불순도 계산의 기본 공식
🔥 엔트로피 (Entropy)−Σp·log(p)정보이득(Information Gain) 계산용
💧 회귀에서는MSE(평균제곱오차)값의 분산을 최소화하는 기준

💬 지니와 엔트로피는 시험에 자주 등장하는 키워드예요!

두 개념 모두 “데이터를 얼마나 잘 나눴는가?”를 측정하는 기준이에요.


✂️ 3️⃣ 가지치기(Pruning) — 과적합 방지 핵심!

나무가 너무 깊어지면 훈련 데이터에는 완벽하지만,

새로운 데이터에는 약한 과적합(Overfitting) 이 발생해요 ⚠️

이럴 때 필요한 게 바로 ✂️ 프루닝(Pruning) 입니다!

유형설명대표 파라미터
🌿 사전 프루닝(Pre-pruning)성장 중에 멈추기max_depth, min_samples_split, min_samples_leaf
🌳 사후 프루닝(Post-pruning)다 자란 뒤 잘라내기ccp_alpha (비용 복잡도 가지치기)

💡 쉽게 말해,

“필요 이상으로 가지를 뻗지 않게 미리 또는 나중에 정리하는 과정이에요.”


⚙️ 4️⃣ 주요 하이퍼파라미터 정리

파라미터의미역할
🌲 max_depth트리의 최대 깊이깊을수록 과적합 위험 ↑
🌿 min_samples_split분기 최소 표본 수작을수록 복잡한 트리 생성
🍃 min_samples_leaf리프 최소 표본 수너무 작은 리프 방지
⚖️ class_weight클래스 가중치불균형 데이터 보정
🔧 ccp_alpha가지치기 강도값이 클수록 단순한 트리

🧹 5️⃣ 전처리 & 데이터 주의사항

스케일링 불필요!

→ 트리는 데이터의 “순서”만 보고 분기하므로 단위의 영향을 받지 않아요.

결측치 처리

→ 단순 평균/최빈값 대체로도 충분.

불균형 데이터

→ class_weight=’balanced’ 또는 오버샘플링(SMOTE) 사용.

범주형 변수

→ 원-핫 인코딩 필요(또는 알고리즘 내 자동 처리 가능).


📊 6️⃣ 분류나무 vs 회귀나무

구분분류(Classification)회귀(Regression)
🎯 목표범주 예측수치 예측
기준지니/엔트로피분산/MSE
예측다수 클래스평균값
출력 예시Yes/No57.3 (예측값)

🧩 7️⃣ 의사결정나무 장단점

장점 💪단점 ⚠️
해석이 쉽고 시각적과적합에 취약
전처리 간단(스케일링 불필요)데이터 변화에 민감
비선형 관계 자동 탐지예측 불안정 가능
변수 중요도 확인 가능일반화 성능 낮을 수 있음

💬 그래서 실제로는 단독 트리보다는

랜덤포레스트(Random Forest)

그래디언트 부스팅(GBDT) 처럼 여러 트리를 묶어 사용해요 🌲🌳🌴


🧮 8️⃣ 작동 예시로 감 잡기 🎓

문제: 고객 이탈 예측

1️⃣ “월요금이 5만 원 이하인가?” → Yes: 이탈 낮음

2️⃣ “고객기간이 6개월 이하인가?” → Yes: 이탈 높음

3️⃣ “무약정인가?” → Yes: 이탈 높음

👉 결과: 월요금↑, 무약정 고객 = 이탈 위험 고객

이런 규칙을 트리 형태로 시각화하면,

👀 마케터나 기획자도 쉽게 해석할 수 있어요!


🧾 9️⃣ ADsP 시험 핵심 포인트

불순도 감소 기준

→ 분류: 지니 / 엔트로피

→ 회귀: 분산 감소

과적합 방지

→ 가지치기(Pruning)

→ 하이퍼파라미터 조정

스케일링 불필요

해석 용이(If–Then 구조)

단독 모델보다 앙상블이 일반화에 유리


🌈 한 줄 정리

🌳 의사결정나무는 데이터를 “질문으로 쪼개” 답을 찾아가는 규칙 모델!

불순도를 낮추는 좋은 질문을 고르고, 가지치기로 균형을 잡으면

해석력도 좋고, 예측력도 안정적인 머신러닝의 기초 모델이에요 💪