질문(조건)을 나무 가지치기처럼 이어가며 데이터를 분류
(예: "키가 170 이상인가?" → Yes/No로 가지를 나누며 결과 도달)
“만약 ~라면” 조건에 따라 분기하는
가장 쉬운 머신러닝 모델
데이터 해석, 설명력이 매우 뛰어남!
시각화도 가능 (tree plot)
다중분류(2종류 이상 클래스)도 지원
연속형/범주형 데이터 모두 사용 가능
“규칙 기반 설명”이 중요한 문제
(예: 의학 판정, 신용심사, 고객 세분화)
데이터 특성별 분기점이 명확할 때
빠르게 베이스라인 성능 확인, 변수별 영향 해석
실무에서는 단독으로도 쓰지만, 보통 RandomForest/Boosting의 “기본 블록”으로 더 많이 씀
데이터 전처리(스케일링, 정규화) 없이도 잘 돌아감
실험/설명/규칙 해석에 필수
| 파라미터 | 설명/의미 | 기본값/주요 예시 |
|---|---|---|
criterion |
분할 기준 (불순도 측정 방식)‘gini’ or ‘entropy’ | 'gini'(기본), 'entropy' |
max_depth |
트리 최대 깊이 (가지치기 한계) | None(제한X), 3, 5 등 |
min_samples_split |
분기 위해 필요한 최소 샘플 수 | 2(기본) |
min_samples_leaf |
리프(끝노드) 최소 샘플 수 | 1(기본) |
max_features |
각 분기마다 사용할 최대 변수 개수 | None(전부), 'sqrt' 등 |
random_state |
랜덤 시드(재현용) | 없음, 0, 42 등 |