Data Science

트리 기반 앙상블 예측 모델

bibidibabidiboop 2025. 12. 2. 07:49

XGBoost / RandomForest
- 둘 다 앙상블 기법이다.
(여러 개의 약한 모델(의사결정 트리)를 합쳐서 하나의 강력한 모델을 만드는 방식이다.)
다만 모델들을 합치는 방식에서 차이가 있다.
RandomForest : 병렬 방식, 배깅(Bagging)
XGBoost : 직렬 방식, 부스팅(Boosting)

1. RandomForest
: 데이터를 여러 번 무작위로 뽑아서,
  여러 모델을 만든 뒤, 합친다
- 데이터 무작위 샘플링
  : 원본 데이터에서 무작위로 데이터를 뽑아 여러 개의 '하위 데이터셋'을 만든다. (중복 허용)
- 특성(Feature) 무작위 선택
  : 각 '하위 데이터셋'으로 의사결정 트리를 만들 때, 나무 가지를 치는 기준이 되는 특성(변수)도 매번 무작위로 몇 개만 골라서 사용한다.
- 다양한 트리 생성
  : 위 두 과정으로 모두 조금씩 다른 수백 개의 의사결정 트리가 만들어진다
- Voting 
  : 새로운 데이터를 예측할 때 이 수백 개의 트리 각각에게 예측을 요구하고,
    -분류 문제 : 가장 많은 표를 얻은 결과를 최종 예측으로 정한다.
    -회귀 문제: 모든 트리가 예측한 값의 '평균'을 최종으로 예측한다.

2. XGBoost
: Boosting 계열 알고리즘 중 하나. Boosting은 약한 모델을 순차적으로 학습시켜 이전 모델의 실수를 보완하는 방식이다.
XGBoost는 그중에서도 '경사 하강법'을 사용해 실수를 보완하는 "Gradient Boosting"을 극단적으로 최적화시킨 버전이다.
**경사 하강법********************************
함수의 최솟값을 찾기 위한 최적화 알고리즘
***********************************************
- 첫 번째 트리 생성: 먼저 매우 단순한 의사결정 트리를 생성
- 오류(잔차) 계산: 첫 번째 트리가 예측한 값과 실제 정답 사이의 오류를 계산
- 두 번째 트리: 두 번째 트리는 정답을 예측하는 것이 아니라 앞에서 계산한 오류를 예측하도록 학습
- 순차적 보완 : 세 번째 트리는 앞의 두 트리가 합쳐서 만든 새로운 오류를 학습한다
- 반복: 이 과정을 수백 번 반복하며 오류를 점차 줄여나가 0에 가깝게 만드는 방향으로 모델이 업데이트 된다