앙상블기법

2020. 9. 6. 16:47

* 앙상블기법

앙상블기법이란

 - 알고리즘 대회에서 많이 쓰이는 모델, 여러 모델을 합친 하나의 새로운 모델을 의미

 - 대수의 법칙을 기반으로 하는 모델

     대수의 법칙: 큰 모집단에서 무작위로 뽑은 표본의 평균이 전체 모집단의 평균과 가까울 가능성이 높다는 개념

     즉 많은 시행의 결과가 수학적으로 합리적인 결과(많이 수행할수록 전체 모집단의 평균과 비슷해진다)를 가져올 수 있다는 개념

     -> 여러개의 기본모델을 조합하여 더 많은 시행을 하여 검증데이터를 모으고, 평균or 투표를 통해 예측 값을 구해 예측성능을 높인다.


 - 예측성능을 찾는데 보다 좋으나, 다른 모델들에 비해 엄청난 차이(10~20% 이상)가 나지는 않는다

 - 원인이나 중요변수를 찾는데 사용하기보다 예측성능이 더 중요할때 사용(ex: 보안) 


앙상블 러닝 구성

 - 각 기본 모델(분류기, base learner)들은 독립적이고 최소 0.5이상의 정확도를 가져야함

 - 총 모델의 수는 이론적으로 무한대이어야 함(통계학적으로는 대표군이 최소한 30이상을 가져야하며, 일반적으로는 수십~수백개를 사용함)

 - test data에 대해 다양한 의견(예측값)을 수렴하기위해 모델선정시 overfitting가 잘되는 모델을 기본적으로 사용한다.

 - 또한 각모델은 반드시 Tree모델일 필요는 없다.

 - 앙상블러닝의 종류(크게 3, +1)

    Tree기반의 단일모델(파이썬에서 기본적으로 제공하는 패키지 함수이다.)

      Bagging: 앙상블러닝의 시초, 모델을 다양하게 만들기 위해 데이터를 재구성(즉, 입력을 조금씩 바꾸어 다른 모델을 만든다)

      random forest: 모델을 다양하게 만들기 위해 데이터 뿐만 아니라 변수도 재구성(즉, 입력과 출력(행과 열)을 조금씩 바꾸어 다른 모델을 만든다)

      boosting: 맞추기 어려운 데이터에 대해 좀 더 가중치를 두어 학습하는 개념(ex: adaboost, gradient boosting(xgboost, lightgbm, catboost))

    앙상블의 한 개념

      Stacking: 모델의 output값을 새로운 독립변수로 사용(0.x%의 정확도를 더 올리기 위해 사용), 모델로 나온 결과를 입력으로 삼아 다시 학습, 연산시간이 많이 걸리는 단점이 있음



 - 앙상블러닝에서 잘쓰이는 모델: random forest, boosting(둘다 tree기반 모델이다)

'Study > Deep_Machine learning' 카테고리의 다른 글

불균형 데이터  (0) 2020.09.20
클러스터링  (0) 2020.09.06
기본적인 머신러닝 모형  (0) 2020.08.22
회귀분석  (0) 2020.08.17
머신러닝 기초5  (0) 2020.08.17

+ Recent posts