[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 4-2 (K-MOOC)

daeungdaeung·2021년 6월 24일
1

Machine-Learning

목록 보기
8/25

Ensemble

Ensemble 모델

여러 모델(Decision Tree, Naive Bayse, KNN)의 장점만을 활용합니다.

서로 다른 머신러닝 기법들을 함께 사용하는 방법

일반적으로 메타 클래시파이어라고도 부릅니다.

  • 메타 클래시파이어: 서로 다른 머신러닝 기법의 결과값을 입력으로 해서 최종 결과값을 출력합니다.

부스팅, 부트 스트래핑, 배깅, 케스케이팅 등 다양한 Ensemble 모델이 존재합니다.

성능 개선을 위한 Ensemble Model

  • 각 모델의 결과(확률)의 Averaging 사용

  • Stacking: 여러개의 구분기가 존재하면 그 구분기가 순서대로 쌓이는 것

Random Forest

각각의 Decision Tree를 서로 독립적으로 학습 후 각 Decision Tree에서 출력된 결과들의 Average를 계산하여 최종 결과를 얻어냅니다.

작동 속도가 빠르기 때문에 실제 상황에서 빈번하게 사용됩니다.

같은 Decision Tree로 구성하게 되면 서로 다른 구분기가 비슷한 출력 결과를 보여줄 것입니다. \rarr 이러한 문제를 해결하기 위해서 Bootstrapping, Random Tree라는 두 가지 트릭을 사용합니다.

Bootstrap sampling

  • 어떤 데이터셋을 만들어내는 과정

  • 학습 데이터셋을 랜덤하게 특정 개수만큼 추출

  • 랜덤하게 추출하는 과정에서 똑같은 샘플이 2번 이상 추출될 수 있습니다.

  • 여러 데이터 셋들이 있을텐데 데이터 셋에 해당하는 Decision Tree를 구현합니다.

Bagging

서로 다른 예측 결과값들을 모두 묶어서 하나의 최종 예측값 출력

Random Trees

  • Decision Tree와 동일한 구조

  • 랜덤으로 피처를 정해놓고 시작합니다.

  • 앙상블 모델 내에 존재하는 여러개의 Decision Tree가 모두 독립적인 구분기로 동작할 확률이 훨씬 커지게 됩니다.

Cascade Classifier

부스팅이라는 기법을 활용: 속도 향상

이전 구분기에서 나온 결과를 기반으로 현재 구분기에서 현재 샘플을 추가적으로 테스트 할건지 하지 않을건지 결정합니다.

가장 간단하거나 빠른 구분기를 가자 앞단에 구현하고 복잡하거나 느린 구분기를 뒷단에서 구현합니다. \rarr 딱봐도 아닌 것을 빨리 패스하기 위해서 앞에 문장처럼 부스팅을 구현합니다.

가장 적용되기 좋은 환경: 아웃라이어가 많은 환경

profile
개발자가 되고싶읍니다...

0개의 댓글