앙상블 학습


앙상블 학습을 통한 분류는 여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종예측을 도출하는 기법을 의미

 

어려운 문제의 결론을 내기 위해 여러 명의 전문가로 위원회를 구성해 다양한 의견을 수렴하고 결정하듯, 앙상블 학습의 목표는 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것

 

즉, 집단지성을 이용.

 

 

앙상블 알고리즘


앙상블 알고리즘의 대표격인 랜덤포레스트와 그래디언트 부스팅 알고리즘의 경우 뛰어난 성능과 쉬운 사용, 다양한 활용도로 인해 많이 사용되어 옴

 

부스팅 계열의 앙상블 알고리즘의 인기와 강세가 계속 이어져 기존의 그래디언트 부스팅을 뛰어넘는 새로운 알고리즘이 개발 가속화가 됐으며, 이로 인해 캐글에서는 XGBoost 그리고 XGBoost와 유사한 예측 성능을 가지면서 훨씬 빠른 수행 속도를 가진 LightGBM, 여러가지 모델의 결과를 기반으로 메타 모델을 수립하는 스태킹(Stacking)을 포함해 다양한 유형의 앙상블 알고리즘이 머신러닝의 선도 알고리즘으로 인기를 모으고 있음

 

XGboost, LightGBM과 같은 최신 앙상블 모델 한두 개만 잘 알고 있어도 정형 데이터의 분류나 회귀 분야에서 예측 성느이 매우 뛰어난 모델을 쉽게 만들 수 있음.

 

 

앙상블 학습 유형


  • 보팅(Voting)

 

  • 배깅(Bagging)
    • Bootstrap Aggregating의 줄임말이다.
    • 원래 데이터에 대해서 여러개의 작은 데이터셋 N개를 샘플링해서 만든다음, 각각의 데이터를 작은 모델 N개로 학습을 시킨다.
    • 이후 다음 학습된 N개의 모델을 모두 하나로 합쳐서 최종적인 모델로 사용하는(bag에 담는 느낌) 방법론을 의미한다. (병렬적으로 데이터를 나누어 여러 개의 모델을 동시에 학습시킴)

 

  • 부스팅(Boosting)

 

보팅과 배깅의 경우 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식

 

보팅과 배깅의 차이점은 보팅의 경우 일반적으로 서로 다른 알고리즘을 가진 분류기를 결합하는 것이고, 배깅의 경우 각각의 분류기가 모두 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 서로 다르게 가져가면서 학습을 수행해 보팅을 수행하는 것. 대표적인 배깅방식이 바로 랜덤 포레스트 알고리즘임

 

아래는 보팅 분류기를 도식화한 것임

 

Voting 방식

 

아래 그림 수정 필요 잘못 삽입.

Bagging 방식

 

 

보팅 유형


  • 하드 보팅 (Hard Voting)
    •  다수결의 원칙과 비슷하며, 예측 결과값들 중 다수의 분류기가 결정한 예측값을 최종 보팅 결과값으로 선정

 

  • 소프트 보팅 (Soft Voting)
    • 분류기들의 레이블 값 결정 확률을 모두 더하고 이를 평균해서 확률이 가장 높은 레이블 값을 최종 보팅 결과값으로 선정. 일반적으로 소프트 보팅 방법으로 적용됨

 

 

 

Reference


[1] 파이썬 머신러닝 완벽가이드

[2] https://newsight.tistory.com/247

 

+ Recent posts