Ensemble Learning
앙상블 기법이란?
여러개의 모델을 조합하여 최적의 모델로 일반화하는 방법
약한 분류기(weak classifier)들을 결합하여 강한 분류기(stromg classifier)로 만드는 것이 앙상블 기법이다.
앙상블 기법에는 Voting, Bagging, Boosting, Stacking 이 있다.
Voting
보팅(Voting)
각각 다른 알고리즘 분류기를 사용하여 최종 예측값을 결정한다.
여러 분류 모델의 결과값을 토대로 가장 많이 예측된 클래스를 voting의 최종 예측으로 결정한다.
보팅은 하드보팅과 소프트 보팅으로 나누어 설명할 수 있는데,
하드보팅은 각 모델이 최종 예측한 값을 모아 앙상블 모델의 최종 예측값을 정할 수 있고
소프트보팅은 각 모델이 클래스마다 예측한 확률을 기반으로 각 클래스 예측확률의 평균값을 구하여 앙상블 모델의 최종 예측값을 구한다.
> 하나의 데이터로 여러개의 모델의 결과를 바탕으로 최종 결과물을 결정
Bagging
배깅(Bagging)
Bootstrap Aggregation의 약자로, '복원추출의 집합' 이라는 뜻이다.
더 자세히 설명하자면 샘플을 여러번 뽑아서(bootstrap) 각 모델을 학습시킨 결과물을 집계(aggregation)하는 방법이다.
> 하나의 모델을 사용하고 데이터를 여러번 샘플링하여, 각 결과를 평가한다.
> Categorical Data 는 투표방식voting으로 집계 (가장 많은 class를 선택)
> Continuous Data는 평균으로 집계 (각 결과물의 평균을 최종 출력으로 결정)
Boosting
부스팅 (Boosting)
이전 모델의 학습이 다음모델의 학습에 영향을 미치는 앙상블 기법
이전 모델의 학습 결과에 따라 오답에 대해서는 높은 가중치를 부여하고, 정답에 대해서는 낮은 가중치를 부여하여
부여된 가중치가 다음 모델에 영향을 미친다. 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 과정을 반복한다.
기존의 모델을 합성하는 다른 앙상블 기법과 조금 다르게, 이 boosting 기법은 모델이 따로 존재한다.
대표적으로, XGBoost, LightGBM, AdaBoost, CatBoost 등이 있다.
> 과적합 위험!
Stacking
스태킹(Stacking)
여러 개별 모델의 출력값을 최종 모델의 train data로 사용하여, 최종 예측 결과값을 가지는 방식.
데이터를 보팅방식과 같이 여러 개별 모델에 학습시켜 각 모델의 예측값을 얻는다.
각 예측값을 다시 훈련데이터로 사용하여 최종 모델로 정한 하나의 모델에 다시 학습시켜 최종결과물을 출력한다.
이렇게 두번의 과정을 거쳐 모델에 학습시켜 높은 성능의 모델을 만든다.
> 과적합 주의!
→ CV기반의 Stacking ensemble을 많이 사용한다.
'Machine Learning' 카테고리의 다른 글
DevOps란? (1) | 2024.02.24 |
---|---|
[Machine Learning] SMOTE (0) | 2023.07.23 |
[Machine Learning] Hyper Parameter 하이퍼 파라미터 (0) | 2023.07.23 |
[Machine Learning] Grid Search 그리드 서치 (0) | 2023.07.22 |
ML - day1 (0) | 2023.07.18 |