MachineLearning

XGBoost parameters

쌍쌍바나나 2017. 8. 27. 22:26
반응형

Complte Guide to Parameter Tuning in XGBoost (with codes in Python)

Introduction

XGBoost는 highly sophisticated algorithm. irregularities of data를 처리하는데 강력한 알고리즘이다.

XGBooster model을 building 하는 과정은 쉽다. 하지만 성능을 향상시키는건 쉽지 않다. 이 알고리즘은 multiple paramters를 사용해서 model을 향상시킨다. 그렇기 때문에 paramter tuning은 필수 작업이다. 그렇다면 어떻게 파라미터를 tuning해야 할까? 파라미터중에서 어떤 파라미터가 optimal ouput일까?

아래 내용은 parameter tuning하는 방법에 대해서 설명한다.

What should you know?

XGBoost(eXtreme Gradient Boosting)은 gradient boosting algorithm의 advanced implementation이다. GBM파라미터 튜닝에 대한 글은 아래 참고

https://www.analyticsvidhya.com/blog/2016/02/complete-guide-parameter-tuning-gradient-boosting-gbm-python/

Table Of Contents

  • The XGBoost Advantage
  • Understanding XGBoost Parameters
  • Truning Parameters (with Example)

The XGBoost Advantage

  • Regularization
    • Standard GBM implementation은 regulariztion을 가지고 있지 않음. 그러므로 overfitting을 줄이는데 도움을 준다고?
    • XGBoost는 ‘regularized boosting’ technique으로도 알려져 있음
  • Parallel Processing:
    • XGBoost는 parallel processing이기 때문에 GBM과 비교했을때, 놀랄만큼 빠른 속도를 가지고 있음
    • boosting은 seuqeuntial process 근데 어떻게 parallelize를 하느냐? 이전에 트리가 있어야 다음 트리를 생성하는데, 그럼 모든 트리가 모든 코어를 사용해서 만들어질때까지 동작을 멈추냐? 그 자세한 내용을 알고 싶으면 아래 링크
    • http://zhanpengfang.github.io/418home.html
    • XGBoost는 또한 Hadoop에서 구현이 가능하다.
  • High Flexibility
    • XGBoost는 custom optimization objectives와 evaluation criteria를 사용자가 직접 정의가 가능하다.
    • 그렇기 때문에 결과적으로 제약이 없지
  • Handling Missing Values
    • Xgboost는 missing values를 처리할 수 있는 in-build routine을 가지고 있다.
    • 사용자는 다른 관측치와 다른 값을 제공해야하며, 이를 paramters로 전달해야 한다. XGBoost는 각 노드에서 누락된 값을 만나고, 미래에 누락 된 값을 위해 어떤 경로를 취해야 하는지 알기 때문에 다른 것들을 시도합니다.
반응형