1. Ensemble Learning
- 여러 개의 기본모델을 활용하여 하나의 새로운 모델을 만들어내는 개념
- Test데이터에 대해 다양한 의견(예측값)을 수렴하기 위해 overfitting이 잘되는 모델을 기본적으로 사용
- 가장 많이 사용되는 모델: 랜덤포레스트, boosting

1) 종류
<Tree기반의 단일 모델(패키지 함수)>
- Bagging: 모델을 다양하게 만들기 위해 데이터를 재구성
- RandomForest: 모델을 다양하게 만들기 위해 데이터 뿐만 아니라, 변수도 재구성
- Boosting: 맞추기 어려운 데이터에 대해 좀더 가중치를 두어 학습하는 개념
*Adaboost, Gradient boosting(Xgboost, LightGBM, Catboost)
<Ensemble의 한 개념>
- stacking: 모델의 output값을 새로운 독립변수로 사용
2. Bagging(bootstrap aggregating)
- 복원추출
- 전체데이터의 63%만 추출됨

Out-Of-Bag error (OOB error)
- TreeN에서 사용하지 않은 데이터로 Error율 계산
- Error율의 평균 값 -> OOB error를 성능지표로 활용
- 목적: 남는 데이터를 검증데이터로 활용하기 위함
Tree vs Bagging
- 깊이 성장한 Tree: overfitting이 크다= 분산이 강하다
- Bagging을 통해 Tree들의 편향을 유지시킴 -> 전체적인 분산을 감소시킬 수 있음
- 학습데이터의 noise에 강건해짐
- 단, 모형해석이 어려워짐
3. Random Forest
1) Bagging의 문제점
Bagging model(여러 트리들)의 분산은 각각 트리들의 분산과 그들의 공분산으로 이루어져 있음
-> 전체데이터에서 복원 추출했으나, 각각의 트리들은 중복되는 데이터를 다수 가지고 있기 때문에 독립이라는 보장이 없음
-> Cov(X,Y)=0 이라는 조건 만족하지 못함(즉, 비슷한 tree가 만들어질 확률이 높음)
-> Tree가 증가함에 따라 오히려 모델 전체의 분산이 증가할 수 있음
-> 각 Tree간 공분산을 줄일 수 있는 방법 필요함
2) 정의
- 데이터 뿐만 아니라, 변수도 random하게 뽑아서 다양한 모델을 만들자(base learner간의 공분산을 줄이자)
- 뽑을 변수의 수는 hyper parameter: 보통 p개인 경우, Root(p)개 선택
4. Boosting
- 오분류된 데이터에 초점을 맞추어 더 많은 가중치를 주는 방식
- 여러 모델들이 sequential하게 이뤄져 있음
- 초기에는 모든 데이터가 동일한 가중치를 갖지만, 각 round가 종료된 후 가중치와 중요도를 계산
- 복원추출시에 가중치 분포를 고려
- 오분류된 데이터가 가중치를 더 얻게 됨으로써, 다음 round에서 더 많이 고려됨
Boosting 기법들
- Boosting 기법들 간 차이: 오분류된 데이터를 다음 Round에서 어떻게 반영할 것인가의 차이
a) AdaBoost: 오분류된 데이터들에 더 큰 가중치를 주어 다음 Round샘플링에 반영
b) Gradient Boosting: 이전 Round의 합성 분류기의 데이터별 오류를 예측하는 새로운 약한 분류기를 학습
Gradient Boosting 종류
a) XGBoost
- Kaggle, KDD 등에서 우수한 성적을 내며 주목 받음
- Regularization term추가-> 복잡한 모델에 패널티 부여
- 과적합 방지
b) LightGBM
- Leaf-wise loss 사용
- Overfitting에 민감하여, 대량 학습데이터를 필요로 함
c) Catboost(unbiased boosting with categorical features)
5. Stacking
- Meta Learner라고 불리며, 다양한 모델을 결합하여 사용하는 기법
- Learner: SVM, KNN, RF, GBM 등등으로

1) 동일
2) 학습데이터에 대해 다시 예측을 하고
3) 이를 통해 나온 prediction값을 변수로 사용해서 다시 학습을 시킴 -> 최종모델
<현업에서>

- 기존 feature를 사용하지 않고, 각 모델별 rpediction만을 사용하기도 함 -> 이 경우, 일반적으로, regression 모델 사용