배깅, 부스팅 모델의 종류, 랜덤 포레스트, XG 부스팅(앙상블)



📍 배깅, 부스팅 모델의 종류




📌 랜덤 포레스트



  • 여러 개의 결정 트리 모델로 예측한 값을 투표를 통해서 최종 선택하는 배깅의 대표적 모델
  • 다수의 의사결정 트리의 의견이 통합되지 않는다면 -> 투표에 의한 다수결의 원칙을 따른다 -> 앙상블 방법
  • 장점 : 실제 값에 대한 추정 값 오차 평균화, 분산 감소, 과적합 감소


  • 트리의 개수 : n_estimators
  • 선택할 특징의 최대 수 : max_features
  • 선택할 데이터의 시드 : random_state


  • 결정 트리 모델의 과대 적합을 통계적 방법으로 해소
  • 결정 트리 모델처럼 쉽고 직관적임
  • 부스팅 방식에 비해 빠른 수행 속도
  • 모델 튜닝을 위한 시간이 많이 필요(하이퍼 파라미터의 종류가 많음)
  • 큰 데이터 세트에도 잘 동작하지만 트리 개수가 많아질수록 시간이 오래 걸림


📌 AdaBoosting



  • AdaBoost(adaptive boosting)
  • Rf처럼 의사결정 트리 기반 모델의 종류 -> 각각의 트리들이 독립적으로 존재하지 않는다.


  • 가중치 부여(Weighting)
    • 모든 데이터 포인트에 초기 가중치를 부여하고 동일한 가중치가 할당됩니다.
  • 약한 학습기 학습(Weak Learner Training)
    • 초기에 약한 학습으로 간단한 모델을 선택하고 학습을 진행합니다
    • 약한 학습은 분류 작업을 수행하고, 분류가 잘못된 데이터 포인트에 더 큰 가중치를 부여합니다.
  • 가중치 갱신(Weight Update)
    • 학습된 약한 학습기의 성능을 기반으로, 각 데이터 포인트의 가중치가 조정됩니다.
    • 잘못 분류된 데이터 포인트의 가중치가 증가하고 다음 약한 학습기가 더 잘 학습할 수 있도록 유도합니다.
  • 약한 학습기 결합(Combining Weak Learners)
    • 반복적으로 약한 학습기를 추가하고 가중치를 갱신하여 이전 학습기들과 결합합니다.
    • 각각의 약한 학습기들은 이전 학습기의 성능에 따라 가중치가 부여되고 결합하여 강력한 학습기를 형성합니다.



📌 GradientBoosting(그래디언트)



  • 경사하강법을 이용한 부스팅입니다.
  • AdaBoost와 기본 개념이 동일하고 가중치를 계산하는 방식에서 경사하강법을 이용하여 최적의 가중치(파라미터)를 찾아내는 방식입니다.




  • 트리의 개수 : n_estimators
  • 학습률 : learning_rate (높을수록 오차를 많이 보정)
  • 트리의 깊이 : max_depth
  • 선택할 데이터의 시드 : random_state


📌 XG 부스팅



  • XGBoost는 빠른 속도와 높은 예측 성능을 제공하고 효율적인 알고리즘 기반으로 대용량 데이터 셋에서도 뛰어난 성능을 보입니다.
  • Early Stopping 제공(학습이 더 이상 진행되지 않으면 학습을 종료)
  • 과대 적합 방지를 위한 규제 포함
  • 병렬로 빠른 학습이 가능




  • 트리의 개수 : n_estimators
  • 학습률 : learning_rate
  • 트리의 깊이 : max_depth
  • 선택할 데이터의 시드 : random_state


📌 Light GBM




  • XG_Boosting 보다 가벼워 2~10배의 속도(동일 파라미터 설정 시)
  • 병렬 학습을 통해 예측 속도가 빠름(Leaf-wise 트리의 장점)
  • 규제 및 조기 중단 가능합니다.


  • 소량의 데이터에서는 제대로 동작하지 않음(과대 적합 위험)
  • Level-wise에 비해 과적합에 민감함
  • 메모리 사용량이 높아 매우 큰 데이터에서 문제가 생길 수 있습니다.
  • 하이퍼 파라미터가 매우 많아 조정하는데 어려움이 생길 수 있습니다.




딥러닝을 사용해서 10가지 동물 사진 분류하기