앙상블 기법

From CS Wiki
Ensemble Learning
하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법

유형[edit | edit source]

  • 보팅: 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
  • 배깅: 하나의 데이터를 여러개로 나누어 학습하는 앙상블 학습법
    • 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
    • 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
  • 부스팅: 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
  • 랜덤 포레스트: 배깅 + 의사결정 나무

보팅[edit | edit source]

여러 모델에서 구해진 예측값들을 대상으로 다수결 투표를하여 최종 클래스를 예측

앙상블 학습.png

  • 하드 보팅과 소프트 보팅
하드 보팅 소프트 보팅
하드 보팅.png 소프트 보팅.png
예측 결과를 그대로 보팅 예측 확률의 평균값으로 보팅

배깅[edit | edit source]

배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법

배깅(Bagging).png

  • 부트스트래핑과 패이스팅
    • 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
    • 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
  • 부트스트래핑 장단점
    • 장점: 분산 감소
    • 단점: 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성

부스팅[edit | edit source]

성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법

부스팅(Boosting).png

  • 장단점
    • 장점: 오답에 대해 높은 가중치를 부여하고 정답에 대해 낮은 가중치를 부여하여 오답에 더욱 집중
    • 단점: 이상치(Outlier)에 취약
  • 종류
종류 설명
아다부스팅

(AdaBoost)

  • Adaptive Boosting
  • 언더피팅 됐던 학습 데이터 샘플의 가중치를 높여감
그래디언트 부스팅

(Gradient Boosting)

  • 가중치 업데이트를 경사 하강법(Gradient Descent)을 이용
  • 학습 전단계 모델에서의 잔여 오차에 대해 새로운 모델을 학습시키는 방법

랜덤 포레스트[edit | edit source]

배깅을 적용한 의사결정 나무 앙상블 학습 기법

참고 문헌[edit | edit source]