기존 다른 Tree 기반 알고리즘과 달리 구조가 수직으로 확장하는 leaf-wise 방식을 채택해 예측 오류 손실을 최소화하는 방법
Leaf-wise 트리 확장기법
GOSS(Gradient-baed One-Sided Sampling) 훈련이 잘 안된 데이터는 남겨두고 훈련이 잘된 데이터 개체들에서는 무작위 샘플링을 진행
Exclusive Feature Bundling(EFB): Feature의 수를 최소한으로 줄이는 방법
XGBoost와 같이 정답과 오답지간의 차이를 훈련에 다시 투입하여 gradient를 이용해 모델을 개선
장점
단점
라이브러리
from lightgbm import LGBMClassifier, LGBMRegressor
주요 하이퍼파라미터
boosting_type=‘gbdt’
부스팅에 사용할 모델, {‘gbdt’:’traditional Gradient Boosting’,’dart’: ‘Dropouts meet Multiple Additive Regression Trees’,’rf’:’Random Forest’}
num_leaves=31
기본모델의 최대 잎 개수
max_depth=-1
기본모델의 최대 깊이 음수인 경우 무제한
learning_rate=0.1
부스팅 단계별 가중치
n_estimators=100
부스팅 트리의 개수
reg_alpha=0
L1 규제항 가중치
random_state
랜덤넘버 시드
개별 알고리즘의 예측 결과 데이터 셋을 최종적인 메타 데이터 셋으로 만든 후 별도의 ML 알고리즘으로 최종 학습 및 예측을 진행하는 방식(메타모델)
장점
단점
라이브러리 및 작동 코드
from sklearn.ensemble import StackingClassifier
estimators=[('rf',RandomForestClassifier(n_estimators=10, random_state=42), ('svc',SVC(random_state=42))]
model=StackingClassifier(estimators=estimators, final_estimator=LogisticRegression()
model.fit(X_scaled_train, Y_train)
주요 파라미터
Estimators
스태킹에 사용할 예측 모델
final_estimator=LogisticRegression()
최종 예측에 사용할 모델, 지정하지 않는 경우 로지스틱회귀 적용
stack_method='auto'
기본 분류기에서 사용하는 예측 메소드, {'auto', 'predict_proba', 'decision_function', 'predict'}, ‘auto’ 지정하면 모델별로 작동하는 것 적용해줌