alpyrithm_알파이리즘

DAY8. Ensemble Learning II 본문

SM공부/Data Mining & Machine Learning

DAY8. Ensemble Learning II

알파이 2020. 8. 4. 08:27

 

Summary

  • Advanced Ensemble Learning
    • Advanced Ensemble Learning 개념
    • Bagging
    • Boosting
    • Random Forest
    • Stacking

 

 

 

 

 

 

 

 

 

 

 

Main

Advanced Ensemble Learning

  • Advanced Ensemble Learning 개념
    • Ensemble Learning의 본질은 개별 모델을 결합하여 우수한 모델을 형성하는 것
    • 우수한 모델이 생성되는 방식을 살펴보면 개별 모델 또는 Learner는 Prediction을 생성하고 그 Prediction은 Final Prediction을 형성하는 데 사용
    • 맨 처음 Prediction Set(예측 세트)를 생성하는 Individual Models 또는 학습자를 Base Learner(기본 학습자) 또는 Base Estimator(기본 추정기)라고 함
    • Base Learner(기본 학습자)의 예측 조합 모델을 Meta Learner(메타 학습자) 혹은 Meta Estimator(메타 추정기)라고 함
  • Bagging
    • 개념
      • Bootstrap Aggregating의 약자
      • Parallel Learning Technique으로 데이터 셋을 이용하여 병렬적으로 학습
      • Base Learner(기본 학습자)가 다른 학습자와 독립적으로 Fitting을 수행하고 Prediction함
      • Bootstrapping은 가능한 리소스를 최대한 활용하는 것
      • 통계적 맥락에서 Bootstrap은 사용 가능한 데이터 세트에서 샘플을 교체하여 가져와 데이터를 처리
    • Work Flow
      • 1에서 10까지의 10개의 숫자로 구성된 데이터 집합이 있다고 가정
      • 사용 가능한 데이터 집합에서 각각 10개의 서로 다른 4개의 데이터 집합을 만들어야 하는 경우 부트스트랩 적용
      • 사용 가능한 데이터 세트에서 샘플을 하나씩 가져온 다음
      • 다음 샘플을 가져오기 전에 수행한 숫자를 바꿈
      • 필요한 데이터 포인트 수를 가진 샘플을 얻을 때까지 계속 진행
      • 선택한 후 각 숫자를 교체할 때, 표본에 지정된 데이터 요소가 둘 이상 있는 경우가 발생 가능함을 고려해야 함
    • 장점
      • Ensemble Learning은 Prediction(예측)의 Variance(분산)을 줄이는데 도움
      • Variance(분산)을 줄일 수 있는 한 가지 방법이 여러 학습자의 예측을 평균화하는 것, Bagging에서 Bootstrapping을 사용하면 데이터의 여러 하위 집합이 생성되고 각 데이터 하위 집합에 기본 학습자가 Fitting된 Prediction이 생성됨
      • 모든 Base Learner(기본 학습자)의 Prediction은 Meta Learner(메타 학습자) 또는 Final Prediction(최종 예측)을 얻기 위해 평균화
  • Boosting
    • 개념
      • 다수의 결정 트리를 통합하여 강력한 모델을 만드는 앙상블 기법으로 이전 학습의 결과를 다음 학습에 전달하여 이전의 오차(잔여 오차)를 점진적으로 개선하는 기법
      • 순차적 Learning
      • 각 기본 학습자의 예측 오류를 수정하는 원칙에 따라 작동
      • Base Learner(기본 학습자)들은 순차적으로 Fitting 수행
      • Base Learner(기본 학습자)는 이전 학습자가 생성한 오류를 수정하려고 시도
      • 이 프로세스는 우수한 Meta Learner(메타 학습자)가 만들어질 때까지 계속 진행
    • 장점
      • 뛰어난 성능을 내며 파라미터 조정이 쉬움
      • 데이터 scale 변환이 불필요
      • 대규모 데이터 적용 가능하고 속도 빠름
      • 일반화 및 성능이 좋은 모델
    • 단점
      • 개별 트리 분석이 어렵고 트리가 점진적으로 복잡해지는 경향이 있음
      • 차원이 크고 희소한 데이터에 성능 미흡
      • 파라미터(특히 학습률)에 민감하여 파라미터 조정에 따라 결과가 달라질 수 있음
    • Work Flow
      • Step 1 : Base Learner(기본 학습자)는 데이터 세트의 Subset(하위 집합)에 Fitting 수행
      • Step 2 : 모델이 Fitting 되면 전체 데이터 세트에 대한 Prediction 생성
      • Step 3 : Prediction Error는 실제 Label과 비교하여 식별
      • Step 4 : 잘못된 Prediction을 생성한 Data Sample에 더 큰 가중치 부여
      • Step 5 : 다른 Base Learner(기본 학습자)는 이전 단계에서 잘못 Prediction된 Data Sample의 가중치가 변경된 데이터 세트에 Fitting
      • Step 6 : Base Learner(기본 학습자)는 이전 모델의 에러를 수정하려고 시도하고 Prediction 생성
      • Step 7 : Meta Learner(메타 학습자)가 생성될 때까지 Step 4, 5 및 6 반복
  • Random Forest
    • 개념
      • 독립적으로 다수의 결정 트리 모델을 생성하고 그 결과를 결합한(예측값 평균) 최종 모델을 생성함으로써 성능을 높이고 과대 적합을 방지하여 안정적인 모델을 생성하는 앙상블 방법
      • 트리 생성 시 일반적으로 설명변수 및 표본을 무작위로 추출(복원 추출, bootstrap 방식)
      • 다수의 트리들이 예측한 값의 평균을 적용, 모델의 일반화(안정성)가 향상됨
      • 과대 적합 위험이 있는 하나의 결정 트리보다 안정적이고 예측 성능이 높음
    • 장점
      • 모든 Prediction의 평균을 취하기 때문에 Overfitting으로 고통받지 않음
      • Feature Importance 확인에 사용 가능
      • Regression 및 Classification 모두 이용 가능
      • 불균형 높은 데이터 세트에 사용 가능
      • 누락된 데이터 처리 가능
      • 뛰어난 성능을 내며 파라미터 조정이 쉬움
      • 데이터 scale 변환이 불필요
      • 큰 데이터에 적용 가능
      • 일반화 및 성능이 좋은 모델
    • 단점
      • Variance를 줄이지만 Bias로 고통 받음
      • 블랙박스 모델이라 내부의 내용 설명이 어려움
      • 개별 트리 분석이 어렵고 트리 분리가 복잡해지는 경향(과대 적합)이 있음
      • 차원이 크고 희소한 데이터는 성능 미흡
      • 선형 모델보다 훈련 속도가 느림
  • Stacking
    • 개념
      • Stacking은 Base Learner(기본 학습자)를 결합하여 Meta  Leanrer(메타 학습자)를 형성한다는 점에서 Bagging 및 Boosting과 유사한 방식으로 작동
      • Base Learner(기본 학습자)로부터 메타 학습자를 얻는 방법에 있어 차이 Meta Learner(메타 학습자)는 Base Learner(기본 학습자)가 생성한 Prediction에 Fitting을 수행함
    • Work Flow
      • Step 1 : Training Set을 여러 부분으로 나눔
      • Step 2 : Base Learner(기본 학습자, Ex KNN)는 훈련 세트의 다른 나머지 부분에 장착된 다음 마지막 세트에 대해 Prediction 생성. 이 과정은 기본 학습자가 훈련 세트의 모든 부분 각각을 Prediction 할 때까지 계속 진행. 생성된 모든 Prediction은 전체 Training Set에 대한 Prediction을 얻기 위해 조합
      • Step 3 : 동일한 Base Learner(기본 학습자)를 사용하여 Test Set에 대한 Prediction도 생성
      • Step 4 : 다른 기본 학습자 Base Learner(기본 학습자, Ex. Random Forest)를 사용하여 2단계와 3단계 반복
      • Step 5 : Meta Leaner(메타 학습자, Ex. LR) 역할을 하는 새 모델 생성. Meta Learner(메타 학습자)는 Base Learner(기본 학습자) 설정한 Learning에서 생성된 Prediction에 Fitting
      • Step 6 : Meta Learner(메타 학습자)를 Training Set에 Fitting하면 동일한 모델을 사용하여 Base Learner(기본 학습자)가 Test Set에서 생성한 Prediction을 Prediction

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'SM공부 > Data Mining & Machine Learning' 카테고리의 다른 글

DAY9. Data Pipeline  (0) 2020.08.05
DAY7. Ensemble Learning I  (0) 2020.08.03
+) DataFrame 기초 정리  (0) 2020.07.28
DAY6. Supervised Learning III  (0) 2020.07.27
DAY5. Supervised Learning II  (0) 2020.07.26
Comments