본 포스팅에서는
파이썬의 XGBoost 알고리즘의
주요 하이퍼파라미터에 대해
설명하겠습니다.
해당 알고리즘에 대한 설명은
아래 포스팅을 참고하시면 됩니다.
XGboost 주요 하이퍼파라미터 (파이썬 래퍼 기준)
XGBoost의 파라미터는 크게 3가지 구분합니다.
- nthreadgeneral parameter
- 기본값을 거의 변경할 일이 없음
- booster parameter (매우 중요)
- 모형 성능에 가장 영향을 미치는 파라미터
- 모델의 과적합 등의 이슈 발생 시 주로 튜닝의 대상이 되는 파라미터
- 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 |
모형의 과적합을 제어하기 위해서는 하이퍼파라미터의 튜닝이 필수적인데요.
이와 관련된 내용은
아래 포스팅 글을 참고하시면 좋을 거 같아요.
반응형
'Machine Learning > XGBoost' 카테고리의 다른 글
XGBoost 알고리즘을 사용한 이진분류예측모델 적합(with 파이썬) (0) | 2022.02.06 |
---|---|
R에서 XGBoost 알고리즘을 사용한 분류예측모델 적합 예시 (0) | 2022.01.24 |
XGBoost 파라미터 조정(튜닝) (0) | 2021.09.01 |
R에서 XGBoost 알고리즘 적용을 위한 데이터세트 이해하기 (0) | 2021.08.31 |
댓글