AI_basic/ML

[ML] 지도학습/분류 GBM(Gradient Boosting Machine)

hits_gold 2021. 7. 23. 17:05
반응형

GBM이란?

  GBM은 AdaBoost와 개별 약한 학습기(weak learner)가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다는 점에서 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이입니다.

<Boosting>

AdaBoost는 이전에 잘못 분류한 데이터에 가중치를 더 많이 주고, GBM은

  1. 각 관측치마다 잔차를 구하고, 이 잔차에 첫 번째 약한 학습기를 적합시킵니다.
  2. 적합된 결과에 따라 잔차의 예측값 (마지막 노드 (leaf)에 속한 잔차들의 평균)을 구하고
  3. 잔차 예측값 * 학습률을 이전 예측값과 더해 새롭게 예측값을 업데이트합니다

의 순서를 통해 가중치를 업데이트하게 됩니다.

 

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으로 계산되었습니다.

반응형