GBM
- 부스팅 알고리즘이란?
여러 개의 약한 모델을 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치를 부여해 오류를 개선해 나아가는 방식
종류 → AdaBoost, GBM, XGBoost, LGBM
- AdaBoost
= 첫 번째 약한 학습기가 분류 기준 1로 분류. → 이 오류 데이터에 대해 가중치 값 부여, 가중치가 부여된 오류 데이터는 다음 약한 학습기가 더 잘 분류할 수 있게 크기가 커짐.
→ 두 번째 약한 학습기가 분류 기준 2로 분류 → 잘못 분류된 오류 데이터에 대해 다음 약한 학습기가 잘 분류할 수 있게 더 큰 가중치를 부여함
→ 세 번째 약한 학습기가 분류 기준 3로 분류하고 오류 데이터 찾음. 에이다부스트는 이렇게 약한 학습기가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측 수행
- GBM
GBM도 에이다부스트와 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)을 이용하는 것이 큰 차이.
경사하강법
→ 실제 결괏값 = y, 예측 함수 F(x)라고 할 때, 오류식 h(x) = y - F(x)을 최소화하는 방향성을 가지고 반복적으로 가중치 값을 업데이트 하는 것.
GBM은 분류, 회귀 다 되는 CART 기반 알고리즘(Classification and Regression Tree)
- 수행 시간 오래 걸리고, 하이퍼 파라미터 튜닝 노력도 더 필요함.
- 주요 하이퍼 파라미터
- n_estimators = weak learner의 개수(기본 100), weak learner가 순차적으로 오류 보정하므로 개수가 많을 수록 예측 성능이 일정 수준까지는 좋아질 수 있음. but 개수 많을수록 시간 오래걸림
- learning_rate = 학습을 진행할 때 적용하는 학습률(앞으로 나아가는..), weak learner가 순차적으로 오류 값을 보정해 나가는 데 적용하는 계수. 0~1사이 값, 기본값 0.1, 작을수록 weak_learner 많아져 성능이 좋아지지만 오래걸림.
너무 작은 값 0 → 업데이트 되는 값이 작아져서 최소 오류 값 찾아 예측 성능 높아질 가능성 높음. but 많은 weak learner(learning_rate 작을 때)는 순차적 반복 필요하여 수행 시간 오래 걸리고, 너무 적으면 반복 완료돼도 최소 오류 값 찾지 못할 수도, 반대로 큰 값은 최소 오류 값 못찾고 그냥 지나쳐버려 예측 성능 떨어질수도 있지만 빠른 수행 가능
- loss : 경사 하강법에서 사용할 비용 함수(기본 deviance)
- subsample : weak learner가 학습에 사용하는 데이터의 샘플링 비율. 기본값 1 = 전체 학습 데이터 기반으로 학습하겠다. 과적합이 염려될 경우 1보다 작은 값으로 설정.
'Machine Learning > 분류' 카테고리의 다른 글
[파이썬 머신러닝 가이드] 분류 - 베이지안 최적화 기반의 HyperOpt를 이용한 하이퍼 파라미터 튜닝 (2) | 2023.12.22 |
---|---|
[파이썬 머신러닝 가이드] 분류 - LightGBM (0) | 2023.12.22 |
[파이썬 머신러닝 가이드] 분류 - XGBoost (0) | 2023.12.22 |
[파이썬 머신러닝 가이드] 분류 - Random Forest (1) | 2023.12.22 |
[파이썬 머신러닝 가이드] 분류 - 결정 트리, 앙상블 학습 (0) | 2023.12.22 |