코딩하는 눈송이

[머신러닝] Ensemble Learning 본문

머신러닝/알고리즘

[머신러닝] Ensemble Learning

monapanda 2023. 7. 2. 21:38

Ensemble Learning이란?

앙상블(Ensemble) 학습이란 여러 개의 개별적인 기계 학습 모델을 결합하여 보다 정확하고 안정적인 예측을 수행하는 기법이다.

개별 모델이 각자의 예측을 내놓고, 이 예측들이 결합하여 최종 예측을 만들어낸다.여기서 각 개별 학습 모델을 weak learner이라 표현하고, 모든 weak learner들이 결합된 모델을 strong learner이라고 한다.

Ensemble learner의 모식도 (출처 : https://undeadkwandoll.tistory.com/65)

사용되는 단일 모델로는 Decision Tree, SVM, Deep learning model 등 모든 종류의 학습 모델이 사용될 수 있다.

 

앙상블 학습의 장점은 여러 가지가 있는데, 단일 모델과 비교하여 설명해보자면 다음과 같다

 

  1. 높은 예측 성능 : 개별 모델들의 약점을 보완하고, 강점을 강화함으로써 예측 결과를 결합하므로 당연하겠지만 개별 모델보다 더 좋은 성능을 달성한다.
  2. 과적합(overfitting) 감소 : 다양한 모델을 결합함으로써 일반화 성능을 향상시킨다. 일부 개별 모델이 훈련 데이터에 과적합(overfitting) 되었을 경우에도 다양한 모델을 결합함으로 편향을 줄이고 예측의 다양성을 증대시키므로 과적합을 감소시킨다.
  3. 예측의 안정성 증대 : 개별 모델들이 동일한 방법으로 예측할 때는 높은 확신을 제공하며, 서로 다른 예측을 할 경우 분산을 줄이는 효과가 있다.
  4. 다양한 모델 유형 활용 : 다양한 유형의 모델을 결합하여 활용할 수 있으며 각 모델은 서로 다른 특징의 알고리즘을 가지며 앙상블은 이러한 다양성을 활용해 다 강력한 예측 모델을 만든다
  5. Robust함 : Ensembling은 이상치(outlier)나 잘못된 예측에 강하게 대응할 수 있다. 개별 모델 중 일부가 잘못된 예측을 하더라도 앙상블은 전체적으로 좋은 예측 결과를 도출할 수 있다.

 

앙상블 학습의 종류

앙상블 학습의 종류로는 Voting, Bagging, Boosting, Stacking 총 네 가지가 있다.

 

1. Voting(보팅)

Voting 기법은 여러 모델에서 나온 예측 결과(output)을 투표(다수결)하여 최종 예측을 결정하는 방법이다.

Voting은 투표 방식에 따라 Soft Voting(소프트 보팅)과 Hard Voting(하드 보팅)으로 나뉜다.

Hard Voting(출처 : https://hye-z.tistory.com/28)

1-1 Hard Voting : 각 모델의 예측 결과를 바탕으로 다수결 투표를 하는 방식

Soft Voting(출처 : https://hye-z.tistory.com/28)

1-2 Soft Voting : 각 모델의 예측 확률 값의 평균, 또는 가중치 합을 사용한다

 

  • Weak Learner들 사이의 신뢰도가 다를 경우, 가중치를 부여해서 평균이 아닌 가중치 합 사용 가능
  • 가중치를 임의로 부여할 수도 있고, Stacking 기법을 사용할 수도 있음

 

2. Bagging

Bagging 기법은 Bootstrap Aggregating의 약자로,

동일한 기계 학습 알고리즘을 사용하여 서로 다른 부분 데이터셋(Bootstrap)에 대한 여러 개의 모델을 학습시킨 후, 각 모델의 예측 결과를 평균 또는 투표하는 집계(Aggregating) 과정을 거쳐 최종 예측을 도출한다.

여기서 Categorical data는 투표을, Continuous data는 평균으로 집계한다.또한 대표적인 모델로는 Random Forest(랜덤 포레스트)가 있다.

Bagging 알고리즘의 모식도(출처 : https://m.blog.naver.com/qbxlvnf11/221488622777)

여기서 전체 데이터셋 중 부분 데이터셋을 추출하는 과정을 복원 랜덤 샘플링(Bootstrap)이라 한다

 

  • Bootstrap이란?
    • 원래의 데이터셋으로부터 관측치를 반복적으로 추출(복원 반복 추출)하여 데이터셋을 얻는 방법
    • 데이터 양을 임의적으로 늘리고, 데이터 셋의 분포가 고르지 않을 시 고르게 만드는 효과가 있다.
    • 데이터 샘플링 시 편향을 높임으로써(중복을 허용하므로) 분산이 높은 모델의 과적합을 줄이는 효과가 있다.

Aggregating 과정에서는 Categorical Data의 경우 voting 방식으로, Continuous Data의 경우 평균을 통해 결과를 집계한다.

 

  • Voting과 Bagging의 차이
    • Voting의 경우 다양한 알고리즘과 모델을 차용해 같은 데이터셋에 대해 예측을 진행한 후, 이를 다수결 투표(hard voting) 혹은 가중치 집계(soft voting)을 통해 결과를 도출한다.
    • 반면 Bagging의 경우는 같은 알고리즘을 사용하는 동시에 Bootstrap 방식의 복원 랜덤 추출을 통해 다양한 데이터셋에 대해 예측을 진행하여 Aggregate(voting 혹은 평균) 과정을 마지막으로 예측을 도출함에 있어 차이가 있다.

Bagging과 Voting 비교(출처 : https://medium.com/dawn-cau/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%99%EC%83%81%EB%B8%94-%ED%95%99%EC%8A%B5-%EC%9D%B4%EB%9E%80-cf1fcb97f9d0)

 

Bagging의 대표적 모델, Random Forest

https://winterflake.tistory.com/17

 

[머신러닝] Random Forest

Random Forest란? Random Forest(랜덤 포레스트)는 앙상블 학습의 한 종류로, 의사결정 트리(Decision Tree)를 기반으로 한 모델이다. Bagging 기법을 활용해서 여러 개의 의사 결정 트리를 생성하고, 그 과정에

winterflake.tistory.com

 

3. Boosting

Boosting의 기본 컨셉은 약한 학습기(weak learner)을 여러개 결합하여 강한 학습기(strong learner)을 만든다는 것이다.

각 모델은 이전 모델들이 잘못 예측한 샘플에 대해서 높은 가중치를 부여하고, 정답에는 낮은 가중치를 부여하는 방식으로 학습하여 예측 모델의 정확도를 향상시키는 방법이다.

이렇게 잘못 예측된 데이터에 집중해서 새로운 분류 규칙을 만들어내는 것이 Boosting이다.

boosting에 대한 설명(엄연하게 치자면 Adaboost) 출처 : https://m.blog.naver.com/qbxlvnf11/221488622777

Boosting은 다음과 같은 주요 개념과 과정을 포함한다.

 

  1. 가중치 부여 : 초기에는 모든 학습 데이터에 대해 동일한 가중치가 부여된다. 각 학습 단계에서는 이전 단계에서 잘못 분류된 샘플들에 대해 가중치를 높여주어 다음 weak learner가 이를 보완하도록 유도한다.
  2. 순차적 학습 : Boosting은 weak learner를 순차적으로 학습시키는 점이 특징이다. 각 weak learner은 이전 학습기의 오차를 최소화한다.
  3. 예측 가중합 : 모든 weak learner의 예측 결과를 가중합하여 최종 예측을 만든다. 각 학습기의 가중치는 학습 과정에서 결정되며, 가중치가 높은 학습기일수록 해당 예측 결과에 더 큰 영향을 미친다.

 

  • Boosting의 종류
    • Adaboost(Adaptive Boosting) : 가장 잘 알려진 Boosting 기법 중 하나로, 가중치를 조합하여 잘못 분류된 샘플에 집중하고 이를 보완하는 weak learner을 만들어내는 방식으로 순차적으로 학습한다.
    • Gradient Boosting : 경사 하강법을 이용해 오류를 최소화하는 weak learner을 학습한다. 대표적으로 Gradient Boosting Machine(GBM)과 XGBoost, LightGBM 등이 있다.
    • CatBoost : 카테고리형 특징과 직접적으로 처리할 수 있는 다양한 기능을 제공하는 Boosting 기법이다. 자체적인 자동 특징 스케일링 및 직접적인 카테고리 처리 기능을 가지고 있다.

https://winterflake.tistory.com/18

 

[머신러닝] Gradient Boosting Machine

Gradient Boosting이란? 이전 Boosting에 관한 내용을 알아봤다. Boosting이란, 다수의 weak learner를 이용하며 이전 모델에서 분류 혹은 예측하지 못한 샘플에 가중치를 주어 다음 모델에서 이를 중점적으로

winterflake.tistory.com

 

  • Bagging과 Boosting의 차이
    • Bagging은 병렬 학습으로, 균일한 확률 분포에 의해 train set(Bootstrap 방식)에 대한 모든 모델의 결과를 조합하여 집계하고 가중치는 모든 모델에 대해 동일한 반면, Boosting은 sequential(순차적) 학습으로 이전 모델의 결과를 다음 모델로 전달하여 weak learner을 보강하며 이전 모델에 대해 오차를 보완하도록 가중치를 부여하고 정확도가 높은 모델에 더 큰 가중치를 부여한다.
    • Bagging은 개별 모델에 대해서 독립적으로 학습이 되어 각기 다른 오차를 가지기에 오류의 분산을 줄이고 일반화 성능을 높이는 것에 반해 Boosting은 이전 모델의 오차에 집중해서 잘못 분류된 샘플에 대해서 성능을 향상시킨다.
    • 또한 Bagging은 일반화 성능이 높아 overfitting에 강한 것에 비해 Boosting은 이전에 학습한 모델의 잘못 분류된 샘플에 대해 더 큰 가중치를 부여하는 방식으로 인해 outlier(결측치)에 취약하지만 높은 정확도를 보여준다.

 

Bagging과 Boosting의 차이 (출처 : https://wooono.tistory.com/98)

 

4. Stacking

Stacking 기법은 CV(cross validation)을 기반으로 한 모델로, 개별 모델의 예측 결과를 사용하여 '다시' 예측을 수행하며 메타 모델(meta model)을 학습하는 기법이다.

정리하자면 개별 알고리즘이 예측한 결과를 최종 메타 데이터 세트로 만들어 별도의 ML 알고리즘으로 최종 학습을 수행하고, 테스트 데이터를 기반으로 최종 예측을 수행하는 방식이다.

Stacking 모델의 모식도(출처 : https://hye-z.tistory.com/28)

Stacking은 다음과 같은 단계로 이루어져 있다.

 

  1. 개별 모델 학습 : 다양한 개별 모델을 선택하고, 이들을 독립적으로 학습시킨다. 각 모델은 동일한 데이터에 대해 서로 다른 특징을 추출하고, 예측을 수행한다.
  2. 개별 모델 예측 : 학습된 개별 모델은 테스트 데이터셋에 대한 예측을 수행한다.
  3. 메타 데이터 생성 : 개별 모델들의 예측 결과를 기반으로 메타 데이터를 생성한다. 이 메타 데이터는 개별 모델들의 예측 값을 특징으로 사용한다.
  4. 메타 모델 학습 : 메타 데이터를 입력으로 받아 최종 예측을 수행하는 메타 모델을 학습한다. 메타 모델은 이전에 학습된 개별 모델들의 예측 결과를 종합하여 최종 예측을 수행한다.
  5. 최종 예측 : 학습된 메타 모델을 이용하여 테스트 데이터셋에 대한 최종 예측을 수행한다.

 

Reference

https://undeadkwandoll.tistory.com/65

 

앙상블 학습(Ensemble Learning)

앙상블(Ensemble) *ensemble: 모두 함께, 일제히; 동시에 앙상블 학습은 모델 결합(model combining)이라고 부르기도 한다. 어떤 데이터의 값을 예측한다 할 때, 보통 하나의 모델을 활용한다. 하지만 여러

undeadkwandoll.tistory.com

https://hye-z.tistory.com/28

 

앙상블 (Ensemble)의 개념

이 전 포스팅에서는 의사결정 나무의 여러 알고리즘을 정리하며 단점으로 과적합을 꼽았다. 과적합을 해결하기 위한 여러 방법 중 하나인 앙상블(Ensemble) 알고리즘을 설명하고 그 종류에 대해

hye-z.tistory.com

https://medium.com/dawn-cau/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%99%EC%83%81%EB%B8%94-%ED%95%99%EC%8A%B5-%EC%9D%B4%EB%9E%80-cf1fcb97f9d0

 

[머신러닝] 앙상블 학습 이란

앙상블 기법 Ensemble Learning 이란 여러 개의 개별 모델을 조합하여 최적의 모델로 일반화하는 방법입니다.

medium.com

http://www.dinnopartners.com/__trashed-4/

 

머신러닝 앙상블(Ensemble) 학습 – DINNO PARTNERS

1. 앙상블 학습이란? 앙상블 학습(Ensemble Learning)은 여러 개의 분류기를 생성하고, 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법을 말합니다. 강력한 하나의 모델을 사용하는대신 보

www.dinnopartners.com

 

'머신러닝 > 알고리즘' 카테고리의 다른 글

[머신러닝] LightGBM(LGBM)  (1) 2023.10.09
[머신러닝] XGBoost  (0) 2023.08.23
[머신러닝] Decison Tree  (0) 2023.07.27
[머신러닝] Gradient Boosting Machine  (1) 2023.07.25
[머신러닝] Random Forest  (0) 2023.07.02
Comments