본문 바로가기
데이터 분석/머신러닝

부스팅 알고리즘 (Boosting Algorithm)

by 너굴맨_ 2022. 10. 5.

Boosting

부스팅이란?

앙상블 학습 유형 중 하나로 약한 분류기를 순차적으로 학습-예측하면서 가중치를 조정하여 오류를 개선하면서 학습하는 방식.

출처 : https://yganalyst.github.io/ml/ML_chap6-4/

부스팅의 특징
  • 각 분류기가 순차적으로 진행
  • 결과 도출시에도 각 모델 결과에 가중치를 반영한다. 나중 모델의 결과에 더 높은 가중치를 둔다.
  • 배깅 방식에 비해 속도가 느리며 데이터셋에 과적화될 위험성이 큼
대표적인 부스팅 알고리즘
  •  AdaBoost
  • GradientBoost
  • XGBoost, LightGBM, CatBoost 등

AdaBoost

예측 성능이 낮은 학습기를 구축 및 조합하여 가중치 조절을 통해 좋은 성능을 발휘하는 강한 분류기를 합성하는 알고리즘

진행 과정

출처 https://icim.nims.re.kr/post/easyMath/838

정리

AdaBoost는 매 단계마다 이전 분류기에서 오차가 크거나 오분류된 데이터들의 가중치를 크게하고 정분류된 데이터들의 가중치는 적게 설정한뒤 다음 단계의 학습데이터셋의 추출과정에 가중치에 비례하게 복원추출하여 새로운 데이터셋을 만들고 모형을 적합하는 과정을 거친다.

 

이러한 반복 단계를 통해 가중치가 반영된 총 오류를 최소화하는 분류기를 선택하고, 선택된 분류기에서 얻은 가중치 및 오류를 얻고, 이를 가속화된 분류기를 개선하는 데 이용한다.

 


Gradient Boost

AdaBoost와 마찬가지로 예측력이 낮은 분류기를 토대로 반복 학습하여 강한 분류기를 생성하는 것. AdaBoost와 달리 반복과정을 통해 손실함수의 최소값을 찾는 과정으로 진행한다.

사전에 알아야 할 용어
  • 손실함수 : 미분 가능한 모든 손실함수. 분류유형인 경우 지수 손실함수, 회귀유형인 경우 RSS을 많이 사용
  • 유사잔차(pseudo-residual) : 실제값 - 예측값 (손실함수로 RSS를 사용한 경우)의 과정을 통해 얻은 유사 잔차
  • 학습률(learning rate) : 과적합 방지와 훈련 속도 조절을 위한 값으로 0.001~ 0.1 사이의 값으로 사용 
진행과정
  1. single leaf로 부터 시작. single leaf에는 target의 평균 값이 할당.
  2. single leaf와 실제 target의 차이. 즉 잔차(Pseudo Residual)를 계산
  3. 손실함수가 최소가 되는 잔차를 선택한 뒤 single leaf +( 학습률 x 잔차)를 계산
  4. 3 과정에서 얻은 값을 2의 과정과 동일하게 실제 target과의 차이. 잔차를 계산
  5. 3~4의 과정을 반복하여 처음 single leaf에 값을 추가하면서 실제값과의 차이. 즉 잔차를 줄여나감

출처: https://m.blog.naver.com/luvwithcat/222103025023


Reference

[1] https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-14-AdaBoost

 

머신러닝 - 14. 에이다 부스트(AdaBoost)

본 챕터에서는 부스팅 기법 중 가장 기본이 되는 AdaBoost에 대해 알아보겠습니다. 부스팅에 대해서 잘 모르신다면 '머신러닝 - 11. 앙상블 학습 (Ensemble Learning): 배깅(Bagging)과 부스팅(Boosting)'을 참

bkshin.tistory.com

[2] https://zephyrus1111.tistory.com/195

 

15. AdaBoost(Adaptive Boost) 알고리즘에 대해서 알아보자 with Python

이번 포스팅에서는 부스팅 알고리즘의 하나인 AdaBoost 알고리즘에 대해서 공부한 내용을 정리하고 직접 구현을 해보려고 한다. 또한 sklearn에서 제공하는 AdaBoost 알고리즘과 성능을 비교해보고자

zephyrus1111.tistory.com

[3] https://www.youtube.com/watch?v=3CC4N4z3GJc 

[4] https://zephyrus1111.tistory.com/232?category=858748 

 

21. XGBoost에 대해서 알아보자

이번 포스팅에서는 부스팅 계열에 떠오르는 샛별 XGBoost에 대해서 알아보려고 한다. 여기에서는 XGBoost의 개념, 알고리즘 동작 원리를 예제와 함께 알아보고자 한다. - 목차 - 1. XGBoost란 무엇인가?

zephyrus1111.tistory.com

 

'데이터 분석 > 머신러닝' 카테고리의 다른 글

XGBoost  (0) 2022.10.07
랜덤 포레스트 (Random Forest)  (0) 2022.10.02
앙상블(Ensemble)  (0) 2022.10.02
결정 트리(Decision Tree)  (0) 2022.09.25
유튜브 댓글 분석하기  (0) 2022.06.15

댓글