scikit-learn

randomforest과 boosting의 차이

gggg21 2025. 3. 24. 11:00

기본적으로 Decision Tree(의사결정나무)의 뿌리 구조(트리 분할 방식)는 동일하며,
그 위에서 어떻게 여러 개의 트리를 활용하느냐에 따라 Random Forest와 Boosting이 나뉩니다.


📌 Random Forest vs Boosting 핵심 개념

알고리즘트리 구조학습 방식특징
Random Forest 여러 개의 독립적인 Decision Tree 트리를 개별적으로 학습 후 투표(분류) 또는 평균(회귀) Overfitting 방지, 안정적이지만 Boosting보다는 성능 낮음
Boosting (XGBoost, LightGBM 등) 여러 개의 연속적인 Decision Tree 이전 트리의 오류를 보완하면서 순차적으로 학습 높은 정확도, 하지만 학습 속도가 느림

📌 Random Forest (랜덤 포레스트)

  • 여러 개의 Decision Tree를 각각 독립적으로 학습 → Voting(분류) 또는 Averaging(회귀)
  • 각 트리는 서로 다른 랜덤 샘플랜덤 피처를 사용해서 학습
  • 개별 트리는 약하지만, 여러 개를 조합하면 안정적인 성능을 제공
  • Overfitting 방지에 강함 (Boosting보다 안정적)

🎯 쉽게 말하면?

  • 여러 개의 Decision Tree를 각각 따로 학습한 후, 다수결(분류) 또는 평균(회귀)으로 최종 결정
  • 개별 트리는 강하지 않지만, 여러 개를 조합해서 강력한 모델을 만듦

📌 Boosting (XGBoost, LightGBM)

  • 트리를 순차적으로 학습하면서, 이전 트리의 오류를 보완하는 방식
  • 첫 번째 트리가 예측을 하면, 잘못된 부분에 가중치를 더 줘서 다음 트리가 학습
  • 여러 개의 트리를 이어서 학습 → 최종적으로 강력한 모델을 생성
  • XGBoost, LightGBM 같은 모델들이 Boosting을 기반으로 만들어짐

🎯 쉽게 말하면?

  • 트리 하나가 틀린 부분을 다음 트리가 보완하면서 강력한 모델을 완성
  • Random Forest보다 더 정교하고 높은 성능, 하지만 학습 시간이 오래 걸릴 수 있음

📌 핵심 정리

알고리즘트리 연결 방식주요 특징
Random Forest 여러 트리를 독립적으로 학습 후 투표/평균 안정적이고 Overfitting 방지
Boosting (XGBoost 등) 이전 트리의 오류를 보완하면서 순차적으로 학습 높은 정확도, 하지만 학습이 느림

🔥 즉, Random Forest는 다수결, Boosting은 서로 보완하면서 학습하는 방식! 🚀