머신러닝 기법 중에 고전적이지만 가장 널리 쓰이는 방법 중에 하나인
Random Forest에 대해 내용을 정리해보았다.
구분 | Bagging (Bootstrap Aggregating) | Boosting |
---|---|---|
핵심 아이디어 | 여러 약한 모델을 병렬로 학습 후 결과를 평균/투표 | 여러 약한 모델을 순차적으로 학습하며 오류 보정 |
학습 방식 | 각 모델이 독립적으로 학습 | 이전 모델의 오류를 반영하여 가중치 조정 |
과적합에 대한 성능 | 과적합 감소에 효과적 | 과적합 위험 존재 (적절한 조정 필요) |
대표 알고리즘 | Random Forest | AdaBoost, Gradient Boosting, XGBoost, LightGBM |
병렬 처리 가능 여부 | 가능 (각 트리가 독립적) | 불가능 (순차적으로 학습) |
샘플링 | 중복 허용한 bootstrap 샘플링 사용 | 전체 데이터를 기반으로 가중치 재조정 |
모델 다양성 | 데이터 및 feature randomness로 다양성 확보 | 모델은 동일하지만 학습 흐름에서 차별화 |
1) 데이터 샘플링 (Bootstrap)
2) 모델 훈련
3) 예측 결과 집계
회귀 문제 (Regression)의 경우: 평균값(average) 사용
Boosting기반 모델에서 최종 예측은 아래와 같이 이뤄짐.
1) Boosting은 단계적으로 모델을 학습하는 방식으로, 가장 먼저 전체 데이터셋을 활용하여 첫 번째 모델을 학습
2) 다음 단계부터는 이전 단계에서의 잔차(예측 오차)를 바탕으로 새로운 모델을 순차적으로 학습
RamdomForest 정의
구성 요소
학습 단계
예측 방식