GBM이란?
GBM은 AdaBoost와 개별 약한 학습기(weak learner)가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다는 점에서 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이입니다.
AdaBoost는 이전에 잘못 분류한 데이터에 가중치를 더 많이 주고, GBM은
- 각 관측치마다 잔차를 구하고, 이 잔차에 첫 번째 약한 학습기를 적합시킵니다.
- 적합된 결과에 따라 잔차의 예측값 (마지막 노드 (leaf)에 속한 잔차들의 평균)을 구하고
- 잔차 예측값 * 학습률을 이전 예측값과 더해 새롭게 예측값을 업데이트합니다
의 순서를 통해 가중치를 업데이트하게 됩니다.
GBM 하이퍼 파라미터
트리 기반 파라미터는 결정트리와 랜덤 포레스트 포스팅에서 소개된 내용과 같습니다
1. loss : 경사 하강법에서 사용할 비용 함수를 지정합니다. 특별한 이유가 없으면 기본값인
"deviance"를 그대로 적용합니다.
2. learning_rate : 기본값은 0.1이며 학습을 진행할 때마다 적용하는 학습률입니다.
3. n_estimators: weak learner의 개수로, learning_rate와 상호보완적입니다.
4. subsamples : weak learner가 학습에 사용하는 데이터의 샘플링 비율입니다. 기본값은1
이며 과적합이 염려되는 경우 1보다 작은 값으로 설정합니다.
GBM실습
get_human_dataset()은 유틸리티 함수로 사용자 행동인식 데이터를 가져옵니다.
하이퍼 파라미터 튜닝없이도 랜덤 포레스트보다 나은 예측 정확도를 보여줍니다. 하지만 수행시간이 오래걸린다는 단점이 있습니다.
설정된 하이퍼 파라미터 값 중 최적 하이퍼 파라미터는 분류기 500개, 학습률 0.1이고, 예측 정확도는 약 0.90으로 계산되었습니다.
'AI_basic > ML' 카테고리의 다른 글
[ML] 비지도학습 / 군집화 / K-means (0) | 2021.07.30 |
---|---|
[ML] 데이터 전처리 - SMOTE 오버 샘플링 (0) | 2021.07.24 |
[ML] 지도학습/분류 랜덤 포레스트(RandomForest) (0) | 2021.07.23 |
[ML] 앙상블 학습의 종류 (0) | 2021.07.22 |
[ML] 데이터 전처리 - 원-핫 인코딩(pd.get_dummies) (0) | 2021.07.21 |