Data Analysis & ML/Machine Learning

[Machine Learning][머신러닝] Bagging, Boosting 정리

YSY^ 2021. 3. 12. 16:26

편향-분산 상충관계(Bias-variance Trade-off)

1) 편향과 분산의 정의

  • 편향(Bias): 점추정
    • 예측값과 실제값의 차이
    • 모델 학습시 여러 데이터로 학습 후 예측값의 범위가 정답과 얼마나 멀리 있는지 측정
  • 편향(Bias(Real)): 모형화(단순화)로 미처 반영하지 못한 복잡성
    => 편향이 작다면 Training 데이터 패턴(복잡성)을 최대반영 의미
    => 편향이 크다면 Training 데이터 패턴(복잡성)을 최소반영 의미
  • 분산(Variance): 구간추정
    • 학습한 모델의 예측값이 평균으로부터 퍼진 정도(변동성/분산)
    • 여러 모델로 학습을 반복한다면, 학습된 모델별로 예측한 값들의 차이를 측정
  • 분산(Variance(Real)): 다른 데이터(Testing)를 사용했을때 발생할 변화
    => 분산이 작다면 다른 데이터로 예측시 적은 변동 예상
    => 분산이 크다면 다른 데이터로 예측시 많은 변동 예상

 

2) 편향과 분산의 관계

  • 모델의 복잡도가 낮으면 Bias가 증가하고 Variance가 감소(Underfitting)
    : 구간추정 범위는 좁으나 점추정 정확성 낮음
    : Training/Testing 모두 예측력이 낮음
  • 모델의 복잡도가 높으면 Bias가 감소하고 Variance가 증가(Overfitting)
    : 점추정 정확성은 높으나 구간추정 범위는 넓음
    : Training만 잘 예측력 높고 Testing은 예측력 낮음
  • Bias와 Variance가 최소화 되는 수준에서 모델의 복잡도 선택

3) 편향과 분산 모두를 최소화하는 방법

Bagging vs Boosting

앙상블(Ensemble, Ensemble Learning, Ensemble Method)이란 머신러닝에서 여러개의 모델을 학습시켜,
그 모델들의 예측결과들을 이용해 하나의 모델보다 더 나은 값을 예측하는 방법

  • Bagging(Bootstrap Aggregating):
    • 부트스트래핑(Bootstraping): 예측값과 실제값의 차이 중복을 허용한 리샘플링(Resampling)
    • 페이스팅(Pasting): 이와 반대로 중복을 허용하지 않는 샘플링
  • Boosting:
    • 성능이 약한 학습기(weak learner)를 여러 개 연결하여 강한 학습기(strong learner)를 만드는 앙상블 학습
    • 앞에서 학습된 모델을 보완해나가면서 더나은 모델로 학습시키는 것

Bagging 알고리즘

  • 의사결정나무(Decision Tree):

  • 렌덤포레스트(Random Forest): 여러개의 의사결정나무(Decision Tree) 생성한 다음, 각 개별 트리의 예측값들 중 가장 많은 선택을 받은 변수들로 예측하는 알고리즘, 의사결정나무의 CLT버전
    • clt(중심극한정리) : 표본집단들의 평균값들을 다시 평균을 취하면 이 평균값은 모집단을 대표한다는 것.
    • 랜덤포레스트는 여러개의 트리를 만들고 샘플링한것, clt의 개념을 알고리즘에 반영
    • clt를 반영함에 있어서의 장점 : 값들이 퍼져있더라도 이를 평균내면 퍼져있는 것을 좁히는 기능을 함. -> 분산을 줄임
    • n_estimator -> 샘플링을 몇개씩할지 정하는 것

Boosting 알고리즘

  • Adaptive Boosting(AdaBoost): 학습된 모델이 과소적합(학습하기 어려운 데이터)된 학습 데이터 샘플의 가중치를 높이면서 더 잘 적합되도록 하는 방식(학습을 제대로 못한 부분에 가중치를 주면서 학습시키면서 성능을 올림)

  • Gradient Boosting Machine(GBM): 아다부스트 처럼 학습단계 마다 데이터 샘플의 가중치를 업데이트 하는 것이 아니라, 학습 전단계 모델에서의 잔차(Residual)을 모델에 학습시키는 방법

  • XGBoost(eXtreme Gradient Boosting): 높은 예측력으로 많은 양의 데이터를 다룰 때 사용되는 부스팅 알고리즘

  • LightGBM: 현존하는 부스팅 알고리즘 중 가장 빠르고 높은 예측력 제공

 

해당 포스팅은 패스트캠퍼스의 <파이썬을 활용한 시계열 데이터 분석 A-Z 올인원 패키지> 강의를 듣고 정리한 내용입니다

 

728x90
반응형