Xgboost 알고리즘! 오늘은 Xgboost 알고리즘 공부한 내용에 대해 공유하려고 합니다.
Xgboost는 Extreme Gradient Boost라고 해서 Decision Tree 기반 앙상블 머신러닝 알고리즘인데 Gradient Boosting 프레임워크를 사용합니다. Structured Data (정형 데이터)를 가지고 예측할 때 매우 우수한 성능을 보이는 알고리즘으로 주목을 받았습니다. Regression 또는 Classification 같은 예측 분석에 사용됩니다.
Datacamp라는 웹사이트에서 Xgboost라는 알고리즘에 대해서 굉장히 잘 정리해주어서 이 글을 살펴보시는 것을 추천드려봅니다 🙂
그리고 이론적으로 잘 설명하고 있는 글도 소개해봅니다.
이외에도 홈페이지 글도 좋아서 공유해봅니다~
Xgboost 알고리즘 메소드는 다음과 같습니다. Regression 모델인 경우, 모델 오브젝트를 아래와 같이 생성해서 predict 할 수 있는데요, 자세한 내용은 Datacamp의 튜토리얼 링크에서 보면 좋습니다. 여기서 아래 code snippet에 사용된 parameter 값에 대한 summary를 하려고 합니다.
xg_reg = xgb.XGBRegressor(objective ='reg:linear', colsample_bytree = 0.3,
learning_rate = 0.1,max_depth = 5, alpha = 10, n_estimators = 10)
1. objective
objective 는 loss function 손실함수입니다. reg:linear라는 부분은 linear regression 모델의 손실함수를 사용한다는 의미겠죠. 이 부분은 gradient boosting이 적용되어서 그런 것 같습니다. 즉 예측한 값과 실제 값의 차이를 줄이는 프레임워크이다보니 loss function의 개념이 들어간 것 같습니다.
2. colsample_bytree
각 tree별 사용된 feature의 퍼센테이지라고 합니다. 값이 높을수록 오버피팅이 됩니다.
3. learning_rate
학습속도
4. max_depth
Boosting 시에 얼마나 각각의 tree가 깊게 커질 수 있는지에 대한 정도
5. alpha
L1 regularization 값인데 큰 값일 수록 더 regularization 하는 것입니다. (모델의 복잡도를 줄이고 over fitting을 줄이기 위해서)
6. n_estimators
빌드하고 싶은 tree의 수입니다.
다른 분들도 혹시 공부하시다가 글을 보면서 가볍게 정리할 수 있으면 좋을 것 같아 글을 작성해보았습니다. 이상입니다. 감사합니다 🙂