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 인자.
많은 파라미터에는 같은 설정을 가리키는 "별칭(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, aliasshrinkage_rate,eta]: 축소율(shrinkage rate).dart에서는 드롭된 트리의 정규화 가중치에도 영향을 줘요.num_leaves[default=31, aliasnum_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중 하나.cuda는gpu·cpu보다 학습이 빠르지만 CUDA나 ROCm을 지원하는 GPU에서만 작동해요.seed[default=None, aliasrandom_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 같은 파라미터로 제어할 수 있어요.
더 알아보기
- LightGBM 파라미터 튜닝 — 튜닝 지침
- LightGBM 특징 — 내부 동작 방식
- Python API — API 참조