본문 바로가기

데이터분석/이론

[머신러닝]앙상블(Ensemble) 이론

1. 앙상블(Ensemble)

1. 정의

2. 특징

 

2. 앙상블(Ensemble) 종류

1. Bagging(배깅)

2. RandomForest(랜덤 포레스트)

3. Boosting(부스팅)

4. Stacking

 

 


 

1. 앙상블(Ensemble)

 

1. 정의

-앙상블 러닝(Ensemble learning): 여러개의 기본 모델을 활용하여 하나의 새로운 모델을 만들어내는 개념

   =>기본 모델(base model): weak learner, classifier, base learner, single learner

-다양한 learner를 만들면 전체 모델의 성능이 증가할 수 있음

-학습 데이터로 여러 모델에 적합하고, 검증 데이터에 대해 예측한 값을 평균or투표하여 결과값 출력

 

-확률이 p인 L개의 classifier를 썼을 때 확률:

   => p<0.5이면 L이 증가함에 따라 기대값이 낮아짐

   => p>0.5이면 L이 증가함에 따라 기대값이 높아짐

-각각의 base learner들은 최소 0.5이상의 정확도를 가져야함

-각각의 분류기는 독립이어야함

-총 분류기의 수는 이론적으로 무한대여야 성능이 좋아짐(일반적으로 수십~수백개)

 

 

2. 특징

-굉장히 파워풀, 캐글 대회 등에서 많이 씀

-일반적으로 대부분의 경우, single learner보다 예측 성능이 좋음

-but 현업에서는 많이 쓰는 모델들과 큰 차이x, 변수선택이 더 중요

 

-test 데이터에 대해 다양한 예측값을 수렴하기 위해 과적합이 잘되는 모델(ex. tree)을 기본적으로 사용

-tree기반 모델(random forest, boosting)을 많이 사용

-꼭 tree모델이 아니어도 됨

 

 

 

2. 앙상블(Ensemble) 종류

 

1. Bagging(배깅)

-모델을 다양하게 만들기 위해 데이터를 재구성하여 예측(데이터의 행 조절)

-tree 기반의 단일 모델(패키지 함수 in r, python)

 

 

2. RandomForest(랜덤 포레스트)

-모델을 다양하게 만들기 위해 데이터뿐 아니라 변수도 재구성(데이터의 행, 열 조절)

-tree 기반의 단일 모델(패키지 함수 in r, python)

 

 

3. Boosting(부스팅)

-맞추기 어려운 데이터에 대해 좀 더 가중치를 두어 학습

-모델들이 독립x, 순서대로

-앞의 모델이 잘 못맞춘 데이터에 대해 가중치를 두어 다음 learner가 학습

-종류: Adaboost, Gradient boosting(Xgboost, LightGBM, Catboost)

-tree 기반의 단일 모델(패키지 함수 in r, python)

 

 

4. Stacking

-모델의 output값을 새로운 독립변수로 사용

-앙상블의 한 개념(여러 모델 결합), 패키지 제공x

-캐글 대회에서 우승 많이 차지함(0.몇프로의 성능을 높일 때 사용)

-학습량이 많고 시간이 오래 걸려 실제론 잘 안씀

 

 

참고) 앙상블 종류별 이론, 특징, 장단점 - [머신러닝]앙상블(Ensemble) - Bagging, RandomForest, Boosting 이론

https://topo314.tistory.com/81

 

[머신러닝]앙상블(Ensemble) - Bagging, RandomForest, Boosting 이론

1. Bagging(bootstrap aggregating) 1. 정의 2. 특징 3. Tree와 Bagging 비교 4. 단점 2. RandomForest(랜덤포레스트) 1. 정의 2. 특징 3. Bagging과 RandomForest 비교 3. Boosting(부스팅) 1. AdaBoost(Adaptiv..

topo314.tistory.com