본문 바로가기
Machine Learning/XGBoost

XGboost 주요 하이퍼파라미터 (with 파이썬)

by 찐남 2022. 2. 7.

본 포스팅에서는
파이썬의 XGBoost 알고리즘의
주요 하이퍼파라미터에 대해
설명하겠습니다.

해당 알고리즘에 대한 설명은
아래 포스팅을 참고하시면 됩니다.

R에서 XGBoost 알고리즘을 사용한 분류예측모델 적합 예시

Overview R의 강력한 기계 학습 알고리즘인 xgboost를 사용하는 방법 알아보기 예시 데이터의 사용과 xgboost 기계 학습 모델을 구축함으로서, R에서 xgboost의 응용 프로그램 확인하기 Introduction XGB

zzinnam.tistory.com


XGboost 주요 하이퍼파라미터 (파이썬 래퍼 기준)

XGBoost의 파라미터는 크게 3가지 구분합니다.

  1. nthreadgeneral parameter
    • 기본값을 거의 변경할 일이 없음 
  2. booster parameter (매우 중요)
    • 모형 성능에 가장 영향을 미치는 파라미터
    • 모델의 과적합 등의 이슈 발생 시 주로 튜닝의 대상이 되는 파라미터
  3. train parameter
    • 학습에 활용되는 객체 함수, 모형의 평가를 위한 지표 등을 설정하는 파라미터


3가지 구분에 따른
XGboost 주요 하이퍼파라미터
(파이썬 래퍼 기준)


1. general parameter

No 파라미터 인수명 설명
1 booster - gbtree(tree based model) 또는 gblinear(linear model) 중 선택
- Default = 'gbtree'
2 silent - 출력 메시지 설정 관련 인수(나타내고 싶지 않을 경우 1로 설정)
- Default = 1
3 nthread - CPU 실행 스레드 개수 조정
- Default는 전체 다 사용하는 것
- 멀티코어/스레드 CPU 시스템에서 일부CPU만 사용할 때 변경


2. booster parameter (매우 중요)

No 파라미터 인수명 설명
1 eta
(기본값 0.3)
- 일반적으로 확습률(learning rate)로 불리우는 파라미터
- weak learner의 반영 수준을 나타냄
- 범위는 0 ~ 1로 클 수록 모형의 업데이트 속도는 빨라짐.
클수록 과적합의 이슈 발생 가능성이 높음
2 num_boost_around
(기본값 10)
- 학습에 활용될 weak learner의 반복 수
3 min_child_weight
(기본값 1)
- leaf node에 포함되는 최소 관측치의 수를 의미
- 작은 값을 가질수록 과적합 발생 가능성이 높음
(과적합 조절 용도로 사용됨)
- 범위: 0 ~ ∞
4 gamma
(기본값 0)
- leaf node의 추가분할을 결정할 최소손실 감소값
- 해당값보다 손실이 크게 감소할 때 분리
- 값이 클수록 과적합 감소효과
- 범위: 0 ~ ∞
5 max_depth
(기본값 6)
- 트리의 최대 깊이를 설정
- 0을 지정하면 깊이의 제한이 없음
- 과적합에 가장 민감하게 작용하는 파라미터 중 하나임
(과적합 조절 용도로 사용됨)
- 범위: 0 ~ ∞
6 sub_sample
(기본값 1)
- 학습 시 데이터 샘플링 비율을 지정(과적합 제어)
- 일반적으로 0.5 ~ 1 사이의 값을 사용
- 범위: 0 ~ 1
7 colsample_bytree
(기본값 1)
- 트리 생성에 필요한 feature의 샘플링에 사용
- feature가 많을 때 과적합 조절에 사용
- 범위: 0 ~ 1
8 lambda
(기본값 1)
- L2 Regularization 적용 값
- feature 개수가 많을 때 적용 검토
- 클수록 과적합 감소 효과
9 alpha
(기본값 0)
- L1 Regularization 적용 값
- feature 개수가 많을 때 적용 검토
- 클수록 과적합 감소 효과
10 scale_pos_weight
(기본값 1)
- 불균형 데이터셋의 균형을 유지


3. train parameter

No 파라미터 인수명 설명
1 objective - reg:linear : 회귀
- binary:logistic : 이진분류
- multi:softmax : 다중분류, 클래스 반환
- multi:softprob : 다중분류, 확률반환
2 eval_metric - 검증에 사용되는 함수정의
- 회귀 분석인 경우 'rmse'를, 클래스 분류 문제인 경우 'error'
---------------------------------------------------------------------
- rmse : Root Mean Squared Error
- mae : mean absolute error
- logloss : Negative log-likelihood
- error : binary classification error rate
- merror : multiclass classification error rate
- mlogloss: Multiclass logloss
- auc: Area Under Curve


모형의 과적합을 제어하기 위해서는 하이퍼파라미터의 튜닝이 필수적인데요.

이와 관련된 내용은
아래 포스팅 글을 참고하시면 좋을 거 같아요.

XGBoost 파라미터 조정(튜닝)

파라미터 조정은 기계 학습에서 쉽지 않은 영역이며, 모델의 최적 파라미터는 여러 시나리오에 따라 달라질 수 있습니다. 따라서 이를 위한 정형화되어 있는 포괄적인 가이드를 만드는 것은 사

zzinnam.tistory.com

반응형

댓글