LightGBM 파라미터

LightGBM 파라미터 (Parameters)

이 페이지는 LightGBM의 모든 파라미터에 대한 설명을 담아요. 파라미터는 다음 순서대로 병합되는데, 나중 것이 먼저 것을 덮어써요. 1) LightGBM 기본값, 2) weight, init_score, query, positions용 특수 파일, 3) CLI config 파일, 4) CLI 명령줄 설정, 5) Python·R의 함수 특수 키워드 인자(예: train()num_boost_round), 6) Python·R의 params 함수 인자, 7) C API의 parameters·params 인자.

출처: LightGBM Parameters

많은 파라미터에는 같은 설정을 가리키는 "별칭(alias)"이 있어요. 기본 이름과 별칭이 섞여 있으면 기본 이름이 항상 우선돼요.

# 'learning_rate'가 기본 이름이므로 학습률 0.07 사용
lgb.train(
   params={
      "learning_rate": 0.07,
      "shrinkage_rate": 0.12
   },
   train_set=dtrain
)

여러 값을 받는 파라미터는 Python 리스트로 전달해요.

params = {
   "monotone_constraints": [-1, 0, 1]
}

핵심 파라미터 (Core Parameters)

  • task [default=train]: 사용할 작업. train, predict, convert_model, refit 중 하나.
  • objective [default=regression]: 학습 목적 함수. 회귀(regression, regression_l1, huber, fair, poisson, quantile, mape, gamma, tweedie), 이진 분류(binary), 다중 분류(multiclass, multiclassova), 크로스 엔트로피(cross_entropy, cross_entropy_lambda), 랭킹(lambdarank, rank_xendcg) 등. num_class는 다중 분류에서 설정해야 해요.
  • boosting [default=gbdt]: 부스팅 타입. gbdt(전통적인 Gradient Boosting Decision Tree), rf(Random Forest), dart(Dropouts meet Multiple Additive Regression Trees) 중 하나.
  • data_sample_strategy [default=bagging]: 데이터 샘플링 전략. bagging 또는 goss(Gradient-based One-Side Sampling). goss는 4.0.0에서 추가됐어요.
  • num_iterations [default=100]: 부스팅 반복 횟수. 다중 분류에서는 내부적으로 num_class*num_iterations 개의 트리를 구성해요.
  • learning_rate [default=0.1, alias shrinkage_rate, eta]: 축소율(shrinkage rate). dart에서는 드롭된 트리의 정규화 가중치에도 영향을 줘요.
  • num_leaves [default=31, alias num_leaf, max_leaves]: 트리 하나의 최대 리프 수. 범위 1<num_leaves<=131072.
  • tree_learner [default=serial]: 트리 학습자. serial, feature, data, voting 중 하나.
  • num_threads [default=0]: LightGBM에 사용할 스레드 수. 0은 OpenMP 기본 스레드 수를 뜻해요. 최상의 속도를 위해 실제 CPU 코어 수로 설정하라고 권장해요.
  • device_type [default=cpu]: 트리 학습 장치. cpu, gpu, cuda 중 하나. cudagpu·cpu보다 학습이 빠르지만 CUDA나 ROCm을 지원하는 GPU에서만 작동해요.
  • seed [default=None, alias random_seed, random_state]: 다른 시드(예: data_random_seed, feature_fraction_seed)를 생성하는 데 사용돼요.

과적합·불균형 관련 파라미터

  • is_unbalance: 학습 데이터가 불균형하다면 true로 설정. 전체 성능 메트릭은 개선되지만 개별 클래스 확률 추정은 나빠져요. scale_pos_weight와 동시에 쓸 수 없어요.
  • scale_pos_weight [default=1.0]: 양성 클래스 레이블의 가중치. is_unbalance와 동시에 쓸 수 없어요.
  • boost_from_average [default=true]: 회귀·이진·다중 클래스 OVA·크로스 엔트로피에서 빠른 수렴을 위해 초기 점수를 레이블 평균으로 조정해요.

피처 선택·정규화·조기 종료 등은 각각 feature_fraction, lambda_l1, lambda_l2, early_stopping 같은 파라미터로 제어할 수 있어요.

더 알아보기