BLOG
Python

XGBoost 사용하는 법


Dec. 8, 2022, 5:27 p.m.



LightGBM과 함께 머신러닝에서 현재 가장 많이 사용되고 있는 알고리즘은 XGBoost이다.

.

기존의 Gradient Boosting 방식에 CART 방식을 사용하였고, 병렬 처리와 GPU 지원을 통해 빠른 처리가 가능한 것이 특징입니다. 그래서 Kaggle에서 많이 사용되고 있습니다.

.

거두절미하고, XGBoost를 Python에서 사용하는 법을 간단하게 알아보자.

1. 설치


pip install xgboost

pip를 이용해서 설치하면 간단하게 완료된다. 그러나 설치가 되지 않는 경우도 있는데 이럴 때는 에 들어가서 .whl 파일을 다운받아 직접 설치하면 된다.

.

2. 데이터셋 만들기


xgboost도 lightgbm 과 마찬가지로 전용 데이터셋 클래스가 있다. xgb.DMatrix()로 만들 수 있다.

이미 사이킷런 용 데이터 셋을 (X_train, X_valid, y_train, y_valid)로 구축해 놓았다고 가정한다.

import xgboost as xgb

train = xgb.DMatrix(X_train, y_train)
valid = xgb.DMatrix(X_valid, y_valid)

위와 같이 만들어 주면 된다.

3. 학습 진행하기


xgb.train()으로 학습을 바로 진행할 수 있으며 학습이 완료되면 학습된 모델을 반환한다.

params = {'max_depth' : 50,
        'subsample': 0.6,
        'colsmaple_bytree': 0.7,
        'min_child_weight': 6,
        'gamma': 8,
        'reg_lambda': 1.25,
}

model = xgm.train(params=params, dtrain=train, num_boost_round=2000, evals=[(valid, 'valid')], maximize=True)

best_iter = model.best_iteration # 최적 반복 횟수

파라미터 딕셔너리를 먼저 만들고 그 다음에 그 파라미터를 넣어 학습을 진행한다.

4. 예측하기


predict()로 예측을 진행한다.

preds = model.predict(vaild, iteration_range=(0, best_iter))

중요한 점은 학습시 얻은 최적 반복 횟수를 명시해주어야 한다는 점이다.

xgboost 홈페이지에 가보면 굉장히 많은 하이퍼 파라미터들을 설명해 준다. 튜닝을 잘 해서 사용한다면 좋은 성능을 보일 수 있을 것이다.

xgboost



Search