본문 바로가기

kaggle

XGBoost 파라미터

XGBoost의 Hyperparameter

1. nthreadgeneral parameter  (general parameter) : 거의 변경하지 않음, 어떤 booster를 사용할 것인지

- booster: gbtree(tree based model) 또는 gblinear(linear model) // gbtree가 디폴트값 // test 결과 gbtree가 더 성능이 좋다고함

- silent : 출력 메시지 조절 // 메시지를 나타내지 않는 것이 디폴트값

- nthread : 병렬 조절, CPU의 실행 스레드 개수를 조정 // 전체 CPU를 다 사용하는 것이 디폴트값

 

2. booster parameter : 앞으로 우리가 변경할 값, 대부분 이 값들만 조정함

- eta : learning rate // 0.3이 디폴트값 // overfitting 조절에 활용

- min_child_weight : 1이 디폴트값

- gamma : 값이 클수록 overfitting 감소 효과 // 0이 디폴트값

- max_depth : 트리의 최대 깊이 설정 // 6이 디폴트값 // overfitting 조절에 활용 

- sub_sample : 학습 시에 데이터 샘플링 비율을 지정

- colsample_bytree : tree 생성시에 column을 sample함 // 1이 디폴트값 // overfitting 조절에 활용 

- lambda : L2 regularization에 사용하는 파라미터 // 1이 기본값

- alpha : L1 regularization에 사용하는 파라미터 // 0이 기본값

- scale_pos_weight : 기본값 1

 

3. train parameter

- objective: Parkinson's disease 예측 대회의 경우, reg 사용

   - reg : linear(회귀)

   - binary : logistic(이진분류)

   - multi : softmax(다중분류, 클래스 반환)

   - multi : softprob(다중분류, 확률 반환)

- eval_metric: 평가 지표 // Parkinson's disease 예측 대회의 경우, SMAPE을 사용해야 하므로, SMAPE평가지표를 customize해서 사용해야할 것

   - rmse: root mean square 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 the curve