Ensemble(bagging, boosting)

2024. 1. 22. 14:26ML model/Tableau Model

Ensemble: 여러 모델을 학습하여 오류의 감소를 추구함.

- "No free lunch" : 특정 문제에 최적화된 모델이 다른 문제에서는 그렇지 않음을 수학적으로 정리.

- 따라서 어떤 알고리즘도 모든 상황, 모든 데이터에서 절대적으로 우위에 있지 않음.

 

ex) bootstrap을 통해 원본 dataset으로부터 T개의 subset을 만들고, 각 subset별 다른 모델(T개)을 학습하여 predict값 T개 추출

    - T개의 predict값을 Voting(voting, weight voting, stacking 등등 기법 여러가지)하여 최종 predict 생성하는 기법.

 

**개별 모델의 평균 오류보다 앙상블의 오류가 같거나 작음.

    - 즉 가장 최적화 모델보다 뛰어난지는 알 수 없으나 개별 모델들의 평균치보다 항상 우수하거나 같은 성능을 나타냄.

ensemble 중 bagging framework 예시.

 

 

1. bagging(boostrap + aggregating의 약자)

    - 앙상블 각 모델은 다른 subset이용(이때 subset은 원 dataset에서 복원추출로 샘플링)

    - 개별 subset을 bootstrap이라고 함.

 

aggregating 방식(모델 총 K개)

1) Voting : 다수결

2) Weighted Voting : 각 모델마다 weight 다름

    - weight : k번째 모델의 acc / 전체 모델의 acc

3) stacking : meta-classifier 생성

    - K개의 predict를 바탕으로 다시 y를 예측하는 meta-classifier 생성 → result forecast

 

Random Forest(대표적인 bagging 모델)

    - bagging + Random subsapce(variables 랜덤 추출)

    - bootstrap시 data뿐만 아니라 variables(변수)도 랜덤 복원 추출.

다양성 확보가 더 잘되어 일반적인 bagging보다 성능이 좋다.

 

2. boosting

    - 순차적으로 weak learners 학습시키는 앙상블 기법.

    - 1번째 모델로 predict 후, 틀린 것을 중점적으로(weight) 재학습 → 2번째 모델 생성

    - bagging과는 여러 모델(K개)가 독립적이지 않고 연속적인 것에 차이가 있음.

**weight 부여 방식에 따라 여러 종류가 존재(Adaboost, GBM 등등)

 

if) 1~10 classification, bootstrap1(subset1)으로 학습한 1번째 모델이 8을 잘 예측하지 못할 경우

bootstrap2(subset2)에는 class 8에 대한 데이터 비중이 커진다. 이로써 학습한 2번째 모델은 8을 많이 학습하므로 8에 대한 정확도 ↑

 

2번째 모델이 이번에는 2와 4를 잘 에측하지 못하는 경우

bootstarp3 에는 class 2와4에 대한 비중이 커진다. 이로써 학습한 3번째 모델은 2와4를 많이 학습하여 2와 4에 대한 정확도↑

왼쪽은 정분류, 오분류에 대한 weight 부여 방식(Adaboost)

 

'ML model > Tableau Model' 카테고리의 다른 글

GBM(XGB, LightGBM, Catboost)  (0) 2024.01.22