🌳 의사결정나무(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/No | 57.3 (예측값) |
🧩 7️⃣ 의사결정나무 장단점
| 장점 💪 | 단점 ⚠️ |
| 해석이 쉽고 시각적 | 과적합에 취약 |
| 전처리 간단(스케일링 불필요) | 데이터 변화에 민감 |
| 비선형 관계 자동 탐지 | 예측 불안정 가능 |
| 변수 중요도 확인 가능 | 일반화 성능 낮을 수 있음 |
💬 그래서 실제로는 단독 트리보다는
랜덤포레스트(Random Forest) 나
그래디언트 부스팅(GBDT) 처럼 여러 트리를 묶어 사용해요 🌲🌳🌴
🧮 8️⃣ 작동 예시로 감 잡기 🎓
문제: 고객 이탈 예측
1️⃣ “월요금이 5만 원 이하인가?” → Yes: 이탈 낮음
2️⃣ “고객기간이 6개월 이하인가?” → Yes: 이탈 높음
3️⃣ “무약정인가?” → Yes: 이탈 높음
👉 결과: 월요금↑, 무약정 고객 = 이탈 위험 고객
이런 규칙을 트리 형태로 시각화하면,
👀 마케터나 기획자도 쉽게 해석할 수 있어요!
🧾 9️⃣ ADsP 시험 핵심 포인트
✅ 불순도 감소 기준
→ 분류: 지니 / 엔트로피
→ 회귀: 분산 감소
✅ 과적합 방지
→ 가지치기(Pruning)
→ 하이퍼파라미터 조정
✅ 스케일링 불필요
✅ 해석 용이(If–Then 구조)
✅ 단독 모델보다 앙상블이 일반화에 유리
🌈 한 줄 정리
🌳 의사결정나무는 데이터를 “질문으로 쪼개” 답을 찾아가는 규칙 모델!
불순도를 낮추는 좋은 질문을 고르고, 가지치기로 균형을 잡으면
해석력도 좋고, 예측력도 안정적인 머신러닝의 기초 모델이에요 💪