
내부적으로 여러 개의 결정 트리를 부스팅하는 방식으로 학습하여 예측력을 높인다. 이전 모델의 오류를 순차적으로 보완해나가는 방식으로 모델을 형성한다. 이전 모델에서의 실제값과 예측값의 오차(loss)를 훈련 데이터에 투입한 후, gradient를 이용해 오류를 보완해 나간다.
개발 방법에는 두가지가 존재한다.
이 모델을 사용하게 위해선 설치가 필요하다.
pip install xgboost
XGBoost는 튜닝이 정말 중요하기에, 변수 설정을 잘 설정해주어야 한다.
나의 경우에는 변수나 데이터의 연관관계를 잘못 설정하여 모델 성능이 이상하게 나온 경험이 많다..
모델을 학습할 때 다음과 같이 변수들을 설정한다.
model = XGBRegressor(
n_estimators=400, # 트리 개수
max_depth=7, # 트리 최대 깊이
learning_rate=0.2, # 학습률
subsample=0.8,
colsample_bytree=0.8,
random_state=42
)
model.fit(X_train, y_train)
위의 코드는 지금 내가 사용한 코드인데, 어떻게 작동하는지에 대해 설명하자면
n_estimators만큼 반복다음과 같은 학습의 결과는 RMSE, R² Score로 확인 가능하다.
RMSE : 오차값, 값이 작을수록 모델의 예측 정확도가 높음.R² Score : 모델 성능n_estimators
max_depth
learning_rate
n_estimators를 늘려야 효과적subsample
colsample_bytree
random_state=42
42는 관례적으로 많이 씀.gamma