본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(앙상블 학습에서 넘어옴)
Ensemble Learning
하나의 데이터를 여러개의 분류기를 통해 다수의 학습 모델을 만들어 학습시키고 학습 결과를 결합함으로써 과적합을 방지하고 정확도를 높이는 학습 기법
  • 보팅: 앙상블 학습의 기본, 하위 모든 기법들이 보팅 사용
  • 배깅: 하나의 데이터를 여러개로 나누어 학습하는 앙상블 학습법
    • 보팅을 하나의 고유한 학습법으로 보고 배깅과 구분하자면, 일반적으로 보팅은 하나의 데이터에 여러 알고리즘 적용, 배깅은 여러개로 나누어진 데이터에 하나의 알고리즘을 적용하는 것으로 구분
    • 하지만 여러개로 나누어진 데이터를 이용하는 배깅에서도, 최종 예측값을 선택하는 행위는 '보팅'이라 함
  • 부스팅: 병렬로 수행되는 배깅과 달리, 각 결과값을 이용하여 순차적으로 결합
  • 랜덤 포레스트: 배깅 + 의사결정 나무
여러 모델에서 구해진 예측값들을 대상으로 다수결 투표를하여 최종 클래스를 예측

  • 하드 보팅과 소프트 보팅
하드 보팅 소프트 보팅
예측 결과를 그대로 보팅 예측 확률의 평균값으로 보팅
배깅(Bagging)은 Bootstrap Aggregating의 줄임말로, 부트스트래핑을 이용한 앙상블 학습법

  • 부트스트래핑과 패이스팅
    • 부트스트래핑: 학습 데이터셋에서 중복을 허용하여 랜덤하게 추출하는 방식(aka. 리샘플링)
    • 페이스팅: 학습 데이터셋에서 중복 없이 랜덤하게 추출하는 방식
  • 부트스트래핑 장단점
    • 장점: 분산 감소
    • 단점: 중복으로 인해, 특정 샘플은 사용되지 않고 특정 샘플은 여러번 사용되어 편향될 가능성
성능이 약한 학습기(weak learner)를 여러 개 연결하여 순차적으로 학습함으로써 강한 학습기(strong learner)를 만드는 앙상블 학습기법

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

(AdaBoost)

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

(Gradient Boosting)

  • 가중치 업데이트를 경사 하강법(Gradient Descent)을 이용
  • 학습 전단계 모델에서의 잔여 오차에 대해 새로운 모델을 학습시키는 방법
배깅을 적용한 의사결정 나무 앙상블 학습 기법

자주 나오는 정리

편집 원본 편집
  • 대표적인 앙상블 기법은 배깅, 부스팅, 스태킹이고, 배깅을 확장한 랜덤 포레스트가 있다 → 배깅, 부스팅
  • 여러 모형의 예측을 결합해 예측값의 분산을 줄이고 과적합을 막아 정확도를 높인다. 분산을 유지하는 것이 아니다.
  • 결합하는 모형들이 서로 다양할수록(상호 연관성이 낮을수록) 효과가 크다. 상호 연관성이 높으면 같은 실수를 반복하므로 정확도가 잘 오르지 않는다.
  • 랜덤 포레스트는 목표 변수를 쓰는 지도 학습 기법이다.
  • 앙상블이 단일 모델보다 항상 좋은 것은 아니다. 해석이 어려워지고 계산량이 늘며, 자료에 따라 단일 모델과 차이가 없을 수도 있다.

보팅·배깅·부스팅 비교

편집 원본 편집
구분 보팅(Voting) 배깅(Bagging) 부스팅(Boosting)
기본 모델 서로 다른 알고리즘 여러 개 같은 알고리즘 여러 개 같은 알고리즘(약한 학습기) 여러 개
학습 데이터 같은 데이터 부트스트랩 표본(중복 허용 복원 추출) 앞 모델이 틀린 샘플에 가중치를 더한 데이터
학습 순서 병렬 병렬 순차
결합 하드: 예측 클래스의 다수결 / 소프트: 예측 확률의 평균 투표(분류) 또는 평균(회귀) 모델별 가중 결합
주된 효과 서로 다른 모델의 약점 보완 분산 감소 편향 감소
대표 예 로지스틱 회귀 + SVM + 의사결정 나무 결합 랜덤 포레스트 AdaBoost, GBM, XGBoost
  • 보팅은 서로 다른 알고리즘을 결합한다. "같은 알고리즘 여러 개를 쓴다" 는 배깅의 설명이다.
  • 하드 보팅은 각 모델이 낸 클래스로 다수결을 하고, 확률의 평균으로 고르는 것은 소프트 보팅이다.
  • 랜덤 포레스트는 배깅에 변수 무작위 선택을 더한 배깅 계열이다. 부스팅 방식이 아니다.