결정트리의 단일 모델의 한계점을 해결하기 위해서 의사결정 나무를 여러개 만들어서 예측 결과를 종합하는 앙상블(Ensemble)알고리즘을 사용한다.
여러 개의 weak learner들이 모여 투표 (voting)를 통해 더욱 더 강력한 strong learner를 구성한다.
많은 모델이 있기 때문에, 한 모델에서 예측을 엇나가게 하더라도, 어느 정도 보정이 된다.
즉, 보다 일반화된 (generalized) 모델이 완성되는 것!
최종 모델의 예측값을 결정짓는 Voting은 크게 하드 보팅 (Hard voting) 과 소프트 보팅 (Soft voting)으로 나눌 수 있다.
각 weak learner들의 예측 결과값을 바탕으로 다수결 투표하는 방식

다수결의 원칙으로 빨간공으로 결정!
weak learner들의 예측 확률값의 평균 또는 가중치 합을 사용

평균 : 파란공을 예측한 분류기가 높은 확률로 파란공을 예측해서 최종 예측값이 파란공이 된다.
배깅 (Bagging)은 Bootstrap Aggregating의 약자이다.
배깅은 부트스트랩을 통해 만들어진 여러 데이터셋을 바탕으로 weak learner를 훈련시킨 뒤, 결과를 voting 한다.

부스팅 (Boosting)은 반복적으로 모델을 업데이트해나간다.
이전 iteration의 결과에 따라 데이터셋 샘플에 대한 가중치를 부여하고, 반복할 때마다 각 샘플의 중요도에 따라 다른 분류기가 만들어지게 된다.
부스팅은 모든 iteration에서 생성된 모델의 결과를 voting한다.
Boosting은 다시 Adaptive Boosting (AdaBoost) 와 Gradient Boosting Model (GBM) 계열로 나눌 수 있다.
