@@@ 데이터분석/Kaggle

[Kaggle] Titanic XGBoost 조정해보기

HTG 2023. 1. 5. 14:31
728x90

앞서 포스팅한 XGBoost에 관해서 파라미터를 수정해보면서 성능을 늘려 보고자 하였다.

[Kaggle] XGBoost 알아보기 (tistory.com)

 

[Kaggle] XGBoost 알아보기

XGBoost Documentation — xgboost 1.7.2 documentation XGBoost Documentation — xgboost 1.7.2 documentation © Copyright 2022, xgboost developers. Revision 62ed8b5f. xgboost.readthedocs.io Python API Reference — xgboost 2.0.0-dev documentation Python API

h-study.tistory.com

 

4가지 파라미터를 조정해보고자 하였다.

max_depth, gamma, colsample_bytree, colsample_bylevel

 

max_depth

  • 트리의 최대 깊이.
  • 0을 지정하면 깊이의 제한이 없음
  • 과적합에 가장 민감하게 작용하는 파라미터
  • 너무 크면 과적합
  • 일반적으로 3 ~ 10

 

gamma

  • leaf node의 추가분할을 결정할 최소 손실 감소값.
  • 알고리즘을 보수적으로 만듦. loss function에 따라 조정
  • 해당값보다 손실이 클게 감소할 때 분리
  • 값이 클수록 과적합 감소
  • 범위 : 0 ~ 

 

colsample_bytree

  • 각 트리마다의 feature 샘플링 비율.
  • 트리 생성에 필요한 feature의 샘플링에 사용
  • feature가 많을 대 과적합 조절에 사용
  • 일반적으로 0.5 ~ 1

 

colsample_bylevel

  • 트리의 level별로 feature 샘플링 비율.
  • 일반적으로 0.5 ~ 1

각각 일반적인 범위 내에서 각각을 변화시키면서 모델을 돌려보고

accuracy_score(pred,y_test)

model.score(X,y)

train을 train과 val로 나눠서 예측한 정확도와 모델의 성능을 비교하여 두 스코어가 높으면서 차이가 적은 모델을 사용하고자 하였다. 차이가 크다면 과적합일 수 있기 때문

 

그렇게 해서 정한 값은 

max_depth=8, gamma=2, colsample_bytree=0.8, colsample_bylevel=0.9

(원래 3, 1, 1, 1)

 

이중에 효과가 있던건 gamma뿐이었다.