이 레슨과 관련된 학습 키워드
인공지능(AI) — 기계가 생각하는 법 → 머신러닝 — 데이터에서 지식을 추출하다 → 지도학습 기초 — 데이터에서 패턴 배우기 → 트리 기반 모델
결정 트리를 회귀 작업에 적용하고 비용 복잡도 가지치기(cost-complexity pruning)를 사용하여 과적합을 제어합니다.
결정 트리 회귀는 트리 구조를 사용해서 연속적인 수치를 예측하는 모델이에요.
그림 왼쪽의 분류 트리를 먼저 보세요. 리프 노드에 클래스 A, 클래스 B라고 적혀 있죠.
분류 트리는 다수결 투표로 리프의 클래스를 결정해요. 8 대 10이면 A를 선택하는 거예요.
이제 오른쪽의 회귀 트리를 보세요. 리프 노드에 23.4, 31.7 같은 숫자가 적혀 있어요.
회귀 트리는 리프에 속한 데이터의 평균값을 예측으로 출력해요.
분할 기준도 다릅니다. 분류 트리는 지니 불순도나 엔트로피를 사용해요.
반면 회귀 트리는 엠에스이, 즉 평균 제곱 오차를 기준으로 분할해요.
노드의 MSE는 그 노드 안의 데이터들이 평균으로부터 얼마나 흩어져 있는지를 측정해요.
MSE가 작은 노드는 데이터가 비슷하다는 뜻이에요. 순수한 노드인 거죠.
그림 아래쪽 비교 박스를 보면, 평가 지표도 완전히 달라요.
분류는 정확도와 에프원 스코어를 쓰지만, 회귀는 MSE와 MAE, 알스퀘어를 써요.
왜 회귀 트리에서 지니 불순도 대신 MSE를 쓸까요?
지니는 클래스 비율을 측정하는 지표예요. 연속값에는 적용할 방법이 없어요.
MSE는 연속값의 분산을 직접 측정하니까, 회귀에 자연스럽게 맞는 거예요.
결국 분류 트리와 회귀 트리는 같은 트리 구조이지만, 목적과 내부 동작이 다릅니다.
분류는 투표, 회귀는 평균. 이 핵심 차이를 반드시 기억하세요.
MAE를 기준으로 쓰면 중앙값 기반 분할이 되어 이상치에 더 강건해져요.
스크립트에서 criterion 파라미터를 absolute_error로 바꾸면 MAE를 사용할 수 있어요.
하지만 MAE는 미분이 0에서 불연속이라 최적화가 까다로워요.
실전에서는 대부분 기본값인 squared_error, 즉 MSE를 사용합니다.
선생님: 회귀 트리에서 리프 노드의 예측값은 어떻게 결정될까요?
학생: 해당 리프에 속한 훈련 데이터의 평균값이요. 투표가 아니라 평균으로 결정되니까 연속값이 나오는 거죠.
선생님: 맞아요. 그렇다면 왜 지니 불순도 대신 MSE를 분할 기준으로 사용할까요?
학생: 지니는 클래스 비율을 측정하는 건데, 연속값에는 클래스가 없으니 적용할 수 없어서요.
선생님: 정확해요. MSE는 연속값의 분산을 직접 측정하니까 회귀 문제에 자연스럽게 맞는 거예요.