[파이썬 머신러닝 가이드] 분류 - 결정 트리, 앙상블 학습

목차

1. 결정 트리

2. 앙상블 학습

 

1.결정 트리

decision tree

 

2. 앙상블 학습

여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법.

전통적으로 보팅, 배깅, 부스팅 3가지.

 

보팅 → 서로 다른 알고리즘을 가진 분류기를 결합 ex) 선형 회귀, K 최근접 이웃, 서포트 벡터 머신

배깅 → 각각의 분류기가 모두 같은 알고리즘 기반이지만, 데이터 샘플링을 서로 다르게 가져가면서 학습을 수행해 보팅을 수행하는 것. (bootstrap + aggregating)

: 개별 분류기가 부트스트래핑 방식으로 샘플링된 데이터 세트에 대해서 학습을 통해 개별적인 예측을 수행한 결과를 보팅을 통해서 최종 예측 결과를 선정하는 방식

부스팅 → 여러 분류기가 순차적으로 학습을 진행하면서, 앞의 분류기가 틀리게 예측한 데이터에 가중치를 부여하면서 학습을 진행하는 방식.

ex) 그래디언트 부스트, XGBoost, LightGBM

  • 다음 조건을 만족할 때 앙상블 모델이 베이스 모델보다 우수
    • 베이스 모델이 서로 독립적이고
    • 베이스 모델이 무작위로 예측할 때(찍는거)보다 성능이 뛰어난 경우
  • 앙상블 모델의 성능을 확보하기 위한 핵심 : 다양성과 무작위성
    • 훈련 데이터의 서로 다른 부분집합을 사용 : bootstrap (같은 학습 데이터라도 서로 다르게 구성해서 학습시켜서 독립된 모델 만들기) → 학습데이터가 다르기 때문에 각각 다른 모델이 얻어짐. 각 모델은 서로 다른 학습 데이터셋 이용, 각 데이터셋을 복원추출을 통해 원래 데이터 수만큼의 크기를 갖도록 샘플링
    • 사용 가능한 feature의 서로 다른 부분집합을 사용: random subspace(선택할 수 있는 feature 제한을 둠)

보팅의 종류 → 하드보팅, 소프트 보팅

 

- 하드보팅 : 다수결

- 소프트보팅

  1. training accuracy 이용 → 그 결과에 해당하는 값의 training accuracy(0에 해당하는거 다 더하기) /전체 training accuracy 다 더한거
  2. prediction probability 이용 → 해당 확률값 더하기/각각 내 예측에 해당하는 확률값 다 더하기