결정나무는 질문으로 공간을 잘라
결정나무는 ‘나이가 37보다 큰가?’처럼 한 특성의 문턱 질문으로 자료를 둘로 나누고, 각 조각을 다시 질문으로 나눠. 분류에서는 지니 불순도나 엔트로피가 줄어드는 분할을, 회귀에서는 평균제곱오차가 줄어드는 분할을 골라. 마지막 잎은 분류라면 범주 비율이나 다수 범주를, 회귀라면 목표값 평균을 예측해.
비선형 관계와 상호작용을 자연스럽게 담아
나무는 온도가 20보다 낮을 때와 30보다 높을 때 모두 수요가 커지는 비단조 관계를 여러 분할로 표현할 수 있어. 지역이 서울일 때만 연령 문턱을 다르게 적용하는 상호작용도 가지 구조에서 자연스럽게 생겨. 수치 특성의 순서만 쓰므로 스케일링이 필요 없고 정규분포도 가정하지 않아.
범주와 결측 처리는 구현마다 달라
일부 나무 구현은 범주형 열과 결측을 직접 다루지만 scikit-learn의 기본 결정나무에는 여전히 인코딩이나 결측 처리가 필요할 수 있어. 모든 나무 모델이 자동으로 섞인 자료형을 받는다고 가정하지 마. 사용하는 라이브러리의 입력 계약과 처음 보는 범주의 동작을 확인해 파이프라인에 묶어야 해.
분할은 눈앞의 이득을 탐욕적으로 골라
각 단계에서 당장 불순도를 가장 많이 줄이는 질문을 선택하므로 전체적으로 가장 좋은 나무를 보장하진 않아. 작은 표본에서 우연히 좋아 보이는 분할도 계속 이어질 수 있어. 깊이를 제한하지 않으면 잎마다 사례 하나만 남을 때까지 학습 자료를 외우기 쉽지.
작은 자료 변화에도 구조가 흔들려
비슷한 후보 분할 두 개의 점수가 근소하면 행 몇 개만 바뀌어도 첫 질문이 달라지고 뒤 가지 전체가 달라질 수 있어. 단일 나무는 예측과 설명 모두 분산이 큰 모델이야. 교차검증과 여러 씨앗에서 점수뿐 아니라 상위 분할이 안정적인지도 확인해.
복잡도를 직접 제한해
max_depth, min_samples_leaf, min_samples_split, ccp_alpha로 가지와 잎의 크기를 조절할 수 있어. 잎에 충분한 사례를 요구하면 희귀한 우연을 규칙으로 만드는 일을 줄여. 교차검증으로 제한을 고르되, 깊이 3~5의 얕은 나무는 사람이 읽을 수 있는 기준선으로 따로 가치가 있어.
설명 도구로 쓸 때도 인과로 읽지 마
export_text나 그림으로 경로를 보여주면 제품 담당자와 자료 가설을 검토하기 좋아. 하지만 첫 분할이 가장 중요한 원인이라는 뜻은 아니고, 연관된 다른 특성이 대신 선택될 수도 있어. 놀라운 규칙은 사업 진실로 선언하지 말고 열 의미와 원본 사례를 조사할 질문으로 써.
예측 품질은 앙상블로 이어가
단일 깊은 나무를 그대로 운영하기보다 여러 나무를 평균내는 무작위 숲이나 잔차를 차례로 줄이는 그래디언트 부스팅을 비교해. 얕은 나무는 설명 가능한 기준선, 앙상블은 더 안정적인 예측 후보라는 역할 분리가 자연스러워. 복잡한 쪽은 같은 시험 조건에서 충분한 향상이 있을 때만 채택해.