앙상블기법
* 앙상블기법
앙상블기법이란
- 알고리즘 대회에서 많이 쓰이는 모델, 여러 모델을 합친 하나의 새로운 모델을 의미
- 대수의 법칙을 기반으로 하는 모델
대수의 법칙: 큰 모집단에서 무작위로 뽑은 표본의 평균이 전체 모집단의 평균과 가까울 가능성이 높다는 개념
즉 많은 시행의 결과가 수학적으로 합리적인 결과(많이 수행할수록 전체 모집단의 평균과 비슷해진다)를 가져올 수 있다는 개념
-> 여러개의 기본모델을 조합하여 더 많은 시행을 하여 검증데이터를 모으고, 평균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 |