나무 하나보다 여러 나무가 낫다
의사결정나무 하나는 데이터가 조금만 바뀌어도 완전히 다른 나무가 되는 불안정성을 안고 있다. 이 약점을 보완하려고 여러 나무를 조합하는 두 가지 전략이 나왔다. 나무를 독립적으로 여러 개 만들어 투표하는 배깅(Bagging) 계열의 랜덤포레스트와, 나무를 이전 나무의 오차를 보완하며 순차적으로 쌓는 부스팅(Boosting) 계열이다.
랜덤포레스트: 무작위성으로 다양성을 만든다
랜덤포레스트(Random Forest)는 데이터와 변수를 무작위로 골라 여러 개의 서로 다른 나무를 만들고, 그 나무들의 예측을 투표(분류)하거나 평균(회귀)해서 최종 결과를 낸다.
Random subset — 학습 데이터를 무작위로 다시 뽑아(복원추출) 나무마다 다른 데이터셋을 만든다.
Random trees — 각 나무는 분할할 때도 전체 변수가 아니라 무작위로 고른 일부 변수만 후보로 본다.
Voting — 이렇게 만든 여러 나무의 결과를 모아 다수결(분류)이나 평균(회귀)으로 합친다(Bagging).
나무 하나하나는 여전히 불안정할 수 있지만, 서로 다른 데이터·변수로 만들어진 나무들의 결과를 평균 내면 개별 나무의 실수가 상쇄되어 전체적으로 더 안정적인 모델이 된다.
부스팅: 틀린 부분을 보완하며 강해진다
부스팅(Boosting)은 접근이 다르다. 처음에는 성능이 낮은 약한 모델(Weak Model)로 시작해서, 이전 모델이 틀린 부분에 가중치를 더 주며 다음 모델을 학습시키는 과정을 반복한다. 이렇게 약한 모델을 여러 번 이어 붙여 강한 모델(Strong Model)을 만든다는 뜻에서 “weak to strong”이라고 부른다.
가장 널리 쓰이는 세 가지 구현체가 XGBoost, LightGBM, CatBoost다. 셋 다 Gradient Boosting을 기반으로 하지만 속도·정확도·범주형 데이터 처리 방식에서 갈린다.
구분 | XGBoost | LightGBM | CatBoost |
|---|---|---|---|
트리 성장 방식 | Level(Depth)-Wise — 같은 깊이를 모두 채우며 성장 | Leaf-Wise — 손실을 가장 많이 줄이는 leaf만 골라 성장 | Leaf-Wise + Ordered Boosting |
강점 | 안정적인 성능, 폭넓은 검증 사례 | 변수·데이터가 많을수록 XGBoost보다 빠르고 정확한 경우가 많음 | 범주형 데이터를 전처리 없이 직접 처리, 기본 설정만으로도 성능이 좋음 |
주의점 | 복잡한 모델이라 해석이 어렵고, 튜닝 여지가 큼 | Leaf-Wise 특성상 데이터가 적으면 과적합되기 쉬움 | 다른 두 라이브러리보다 학습 속도가 느릴 수 있음 |
Depth-Wise와 Leaf-Wise, 무엇이 다른가
XGBoost의 기본 성장 방식은 Depth-Wise다. 같은 깊이의 마디를 모두 채운 뒤 다음 깊이로 내려간다 — 잘 나뉘든 아니든 트리의 모든 가지가 같이 자란다. LightGBM의 Leaf-Wise는 다르다. 전체 트리에서 손실을 가장 많이 줄일 수 있는 leaf 하나만 골라 그 leaf만 분할한다. 잘 되는 가지만 집중적으로 키우는 셈이라 같은 leaf 수 기준으로는 더 빠르고 정확할 수 있지만, 데이터가 적을 때는 특정 가지가 과도하게 깊어져 과적합 위험이 커진다.
CatBoost의 Ordered Boosting: 정답을 미리 훔쳐보지 않는다
일반적인 부스팅은 다음 트리를 학습할 때 이미 만들어진 예측값(잔차)을 참고하는데, 이 잔차 자체가 같은 학습 데이터로 만들어졌기 때문에 “정답을 미리 너무 많이 참고해서 외우는” prediction shift 문제가 생길 수 있다. CatBoost의 Ordered Boosting은 각 데이터 포인트를 예측할 때 그 포인트보다 앞서 등장한 데이터로 학습한 모델만 사용해서 이 누수를 줄인다. 범주형 변수를 수치로 바꾸는 Ordered Target Statistics도 같은 원리로 정답 누수를 막는다.
정리
랜덤포레스트는 서로 다른 나무를 많이 만들어 투표로 안정성을 얻고, 부스팅은 이전 모델의 오차를 순차적으로 보완해 정확도를 끌어올린다. 부스팅 계열 안에서는 변수·데이터가 많고 정확도가 최우선이면 XGBoost·LightGBM, 범주형 변수가 많고 튜닝에 시간을 덜 쓰고 싶다면 CatBoost가 좋은 출발점이다. 다만 부스팅은 랜덤포레스트보다 과적합에 더 취약하므로 검증 데이터 성능을 반드시 함께 확인해야 한다.
참고 자료
XGBoost: A Scalable Tree Boosting System (Chen & Guestrin, 2016) — XGBoost 원 논문, 알고리즘과 시스템 최적화 (2026-08-07 확인)
LightGBM: A Highly Efficient Gradient Boosting Decision Tree (Ke et al., NeurIPS 2017) — Leaf-Wise 성장과 GOSS·EFB 최적화를 소개한 원 논문 (2026-08-07 확인)
CatBoost 공식 문서 — Ordered Boosting과 범주형 변수 처리(Ordered Target Statistics) 설명 (2026-08-07 확인)
댓글 0
댓글을 불러오는 중…