개념
의사결정트리는 데이터를 조건에 따라 나누며 예측하는 지도학습 알고리즘이다. 분류에 많이 사용되지만 회귀에도 사용할 수 있다.
구조
- 노드: 특정 feature에 대한 질문
- 가지: 질문의 결과에 따른 경로
- 리프 노드: 최종 예측이 결정되는 노드
예를 들어 “공부시간이 4시간 이상인가?” 같은 질문으로 데이터를 나누고, 각 리프에서 이수/미이수 또는 점수를 예측할 수 있다.
학습 원리
트리는 데이터를 나눌 때 레이블이 더 잘 섞이지 않도록 분할한다. 이를 위해 지니 불순도나 엔트로피와 정보 이득을 사용한다. 불순도가 낮아지는 방향으로 feature와 분할 지점을 선택한다.
분할 후 불순도는 자식 노드의 불순도를 표본 수로 가중 평균한다.
장점과 한계
의사결정트리는 해석하기 쉽고 직관적이다. 하지만 너무 깊게 자라면 과적합이 생기기 쉽다. 이를 보완하기 위해 가지치기, 깊이 제한, 랜덤 포레스트, XGBoost가 사용된다.