본문 바로가기
AI

ML : Ensemble Learning

by 월곡동로봇팔 2020. 2. 20.

정의

> ensemble 은 조화라는 의미를 가진다.
> 여러가지의 base model, base learner, single learner 들로 이루어져 있다.

> 이는 대수의 법칙 (큰 모집단에서 무작위로 뽑은 평균이 전체 모집단의 평균과 가까울 가능성이 높다는 통계와 확률분야의 기본 개념) 에 의해 많은 시행 (여러개의 learner)의 결과가 수학적으로 합리적인 결과를 가져온다.

> 대수의 법칙에 의해 overfitting 된 다양한 learner 들을 만들면 전체의 모델의 성능이 증가할 수 있다.

Model & 목표

기본적인 Ensemble Learning

Ensemble Learning의 기본적인 model은 성능이 좋지 않은 여러 개의 learner들을 붙여서 성능을 끌어올리는 것을 목표로 한다.


조건 - 1 (p는 0.5 이상)

Ensemble Learning 조건

Ensemble 은 L개의 learner들이 각각 classifier 라고 생각하면 된다. 이 learner들은 "오른다 or 떨어진다" "맞다 or 아니다" 를 판별하는 이진분류이기에, 이들의 ensemble model은 이항분포이다. 이 때 ensemble의 기댓값은 np 이므로, p가 올라갈수록 전체 model의 기댓값 또한 올라간다. 이 때 p는 0.5를 넘겨야 효과적이다.

 

조건 - 2 (overfitting이 잘 되는 model을 base learner로!)

  • Test Data 에 대해 다양한 의견(예측값)을 수렴하기 위해 overfitting이 잘 되는 model을 기본적으로 사용한다. overfitting이 잘 된다는 의미는 디양하고 극적인 예측값을 수렴하기 때문이다. 따라서 오류를 최대한으로 줄일 수 있다.
  • 주로 쓰는 model 들은 Decision Tree, ANN (인공신경망) -> Deep Learning
  • Ensemble 개념은 여러 모델의 조합이기 때문에, base learner를 꼭 Tree나 인공신경망으로 안해도 된다.

예시 - 1

Ensemble Learning 구체적인 예시

각각의 learner들이 예상하지 못하는 부분을 다른 learner들이 보완함으로써 다수결로 조합, 여러 분류기를 종합하여 한 분류기의 오류를 상쇄하고 더 나은 결론을 이끌어낸다.


종류

Linear Regression, Decision Tree는 똑같은 data가 들어가면 똑같은 result를 내기 때문에 이를 방지하고자 다음과 같은 Ensemble Learning에서 input data를 나누는 방법에 대해 표로 정리하였다.

Tree 기반의 단일 모델 (패키지 함수) Bagging
  • 모델을 다양하게 만들고자 input data를 재구성
  • data의 행만 재구성
Tree 기반의 단일 모델 (패키지 함수) RandomForest
  • 모델을 다양하게 만들고자 input data를 재구성
  • Bagging과는 다르게 행과 열(변수)도 재구성한다.
Tree 기반의 단일 모델 (패키지 함수) Boosting
  • 맞추기 어려운 데이터에 대해 좀 더 가중치를 두어 학습하는 개념.
  • L1이 학습하고 오류가 심한 부분의 변수에 가중치를 두어 L2로 학습.
  • Adaboost, Gradient boosting (Xgboost, LightGBM, Catboost)
Ensemble의 한 개념 (사용자 정의 함수) Stacking
  • 모델의 output값을 새로운 독립션수로 사용
  • 99%를 99.5%로 정확도를 끝까지 끌어올리고 싶을 때 사용한다.
  • 단점은 시간이 오래걸리며 직접 code를 작성해야한다.

'AI' 카테고리의 다른 글

Statisics : Bias vs Variance  (0) 2020.02.20
ML : Ensemble Learning : Bagging  (0) 2020.02.20
ML : Model : LDA vs SVM  (4) 2020.02.13
ML : Model : SVM 이란? / LDA vs SVM / SVM 정의  (0) 2020.02.12
ML : 라그랑주 승수법 (Lagrange Multiplier)  (0) 2020.02.12

댓글