LightGBM 사용하는 법
Dec. 5, 2022, 11:20 p.m.
Tabular 데이터들을 다룰 때는 보통 딥러닝 보다는 머신러닝 알고리즘을 많이 활용한다. 로지스틱 회귀부터 SVM, 등의 알고리즘이 전통적으로 활용이 많이 되었다. 그러나 요즘에는 부스팅 알고리즘과 앙상블 알고리즘을 훨씬 많이 사용되는 것 같다.
.
아무래도 훨씬 사용하기도 쉽고 성능도 너무 잘 나와주기 때문인 것 같다. 이번 포스팅에서는 부스팅 알고리즘 중 하나인 마이크로소프트에서 개발했다고 알려지는 LightGBM(Light Gradient Boosting Model)을 사용하는 방법에 대해서 알아보도록 하겠다.
.
1. 설치
Light GBM은 말 그대로 가벼운 그래디언트 부스팅 모델이다. 속도는 빠르고 성능은 굉장히 잘 나와준다.
설치는 역시나 pip 를 활용해서 하면 된다.
pip install lightgbm
대부분은 잘 설치가 될 것이다. 가끔 가다가 설치가 안되는 경우가 있다고 하는데 그러면 스택 오버플로우로...
.
2. 사용
사용을 위해서는 먼저 패키지를 임포트 해준다.
import lightgbm as lgbm
.
lgbm에서는 자체의 데이터셋 클래스를 사용한다. 그러므로 학습을 위해서 먼저 lgm.Dataset() 객체를 생성해준다.
train = lgbm.Dataset(X_train, y_train)
test = lgbm.Dataset(X_valid, y_valid)
데이터셋 객체에 X와 y를 차례로 넣어주어 데이터 셋을 생성했다.
.
그 다음에 하이퍼 파라미터들을 정해 주어야 한다. 모델을 선언할 때 넣어주어도 되지만 lgbm은 파라미터의 종류가 굉장히 많아서 선언 할 때 넣어주면 깔끔하지 않다. 그래서 따로 딕셔너리로 선언하는 것을 추천한다.
params = {'objective': 'binary', 'learning_rate': 0.005, 'bagging_freq': 1, 'force_row_wise': True}
.
lgbm의 수많은 파라미터들은 공식 문서에서 확인해 볼 수 있다. 공식 문서
자 이제 모델을 선언할 차례이다. 선언과 동시에 학습을 진행할 수 있다. 모델을 선언 할 때는 파라미터 딕셔너리와 훈련셋, 검증을 넣어주어야 하고 기타 다른 설정들을 할 수 있다.
import lightbgm as lgbm
model = lgbm.train(params=params, train_set=train, num_boost_round=1000, valid_sets=test, verbose_eval=100)
이렇게 하면 학습이 진행되고 완료된 모델이 model에 반환된다.
.
마지막으로 학습된 모델로부터 예측을 얻는 부분이다. .predict() 메서드로 에측을 얻는다. 이때 test는 데이터셋 객체가 아니다.
preds = model.predict(test)
이상으로 아주 간단하게 LightGBM을 사용하는 방법을 알아봤다. 공식 문서에 파라미터를 튜닝하는 팁도 나와있으니 참고하기 바란다.
LightGBM 머신러닝 python