Post

[KT Aivle 3기 AI] 18일차. 머신러닝 (5) 앙상블 알고리즘

KT Aivle School 3기 AI 18일차

  • 강사 : 이장래 강사님
  • 주제 : 앙상블 알고리즘
  • 내용 :
    • 앙상블(Ensemble) 알고리즘 설명 및 실습

앙상블 (Ensemble)

  • 통합은 힘이다.
  • 여러개의 모델을 결합하여 훨씬 강력한 모델을 생성하는 기법
  • 많은 기계학습 경쟁에서 상위 순위를 차지하고 있음
  • 앙상블 실습 코드(Admission)

보팅 (Voting)

  • 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식
  • 하드 보팅 (Hard Voting) : 다수 분류기가 예측한 값
  • 소프트 보팅 (Soft Voting) : 모든 분류기가 예측한 값의 확률의 평균을 구해 높은 값

배깅 (Bagging)

  • Bootstrap Aggregating의 약자
  • 데이터로부터 부트스트랩 한 데이터로 모델을 학습 시킨 후, 학습된 모델의 결과를 집계하여 최종 결과를 얻는 방법
  • 같은 알고리즘을 사용

랜덤 포레스트 (Random Forest)

  • 배깅(Bagging)의 가장 대표적인 알고리즘
  • 랜덤하게 데이터를 샘플링 (복원 추출), Feature를 랜덤하게 선정 → 각자 개별 학습
  • 주요 하이퍼파라미터 :
    • n_estimators : 만들어질 Decision Tree 개수 지정 (default : 100)
    • max_depth : 트리의 최대 깊이 (default : None)

부스팅 (Boosting)

  • 같은 유형의 알고리즘 기반 분류기 여러 개에 대해 순차적으로 학습을 진행
  • 이전 분류기 예측이 틀린 데이터에 대해서 올바르게 예측할 수 있도록 다음 분류기에게 가중치(Weight)를 부여하면서 학습과 예측을 진행
  • 계속하여 분류기에게 가중치를 부스팅하며 학습을 진행해 부스팅 방식이라 함
  • 대표적인 부스팅 방법 : XGBoost, LightGBM

Gradient Boost

  • 오차를 찾는 모델을 계속 생성
  • $y = m_1(x) + err_1(x), \quad\quad err_1(x) = m_2(x) + err_2(x)$
  • $y = m_1(x) + m_2(x) + err_2(x), \quad err_2(x) = m_3(x) + err_3(x)$
  • $\cdots$

XGBoost(eXtreme Gradient Boosting)

  • GBM(Gradient Boost Machine) 알고리즘을 병렬 학습이 가능하도록 구현한 것이 XGBoost
  • 회귀, 분류 문제를 모두 지원하며, 성능과 자원 효율이 좋아 많이 사용됨

LightGBM

  • 조금 더 가벼운?(빠른?) GBM

스태킹 (Stacking)

  • 여러 모델의 예측 값을 최종 모델의 학습 데이터로 사용하여 예측하는 방법
  • ex)
    • KNN, Logistic Regression, XGBoost 모델을 사용해 4종류 예측값을 구한 후
    • 이 예측 값을 최종 모델인 Randomforest 학습 데이터로 사용
  • 현실 모델에서 많이 사용되지는 않음
  • 기본 모델로 4개 이상 선택해야 좋은 결과를 기대할 수 있다.
This post is licensed under CC BY 4.0 by the author.

[KT Aivle 3기 AI] 17일차. 머신러닝 (4) Hyperparameter 튜닝

[KT Aivle 3기 AI] 19일차. 딥러닝 (1) 딥러닝 기초