서평

[책] XGBoost와 사이킷런을 활용한 그레이디언트 부스팅

eunsour 2022. 5. 29.
반응형

 저도 데이콘에서 데이터가 많이 없는 경진대회의 경우 머신러닝 모델을 많이 사용합니다. 그중에서도 XGBoost, LightGBM, Catboost 등을 애용하고, 이들을 스태킹 하는 방법을 주로 사용합니다. 이 책도 XGBoost에 대해 중점적으로 다루고 있지만 새로운 특성을 만드는 피처 엔지니어링, 앙상블, 스태킹 등 캐글 대회에서 상위권을 노릴 수 있는 강력한 머신러닝 기법들을 소개하고 있습니다. 

 

 

이 책은 그레이디언트 부스팅을 크게 업그레이드시킨 모델로 정확도와 속도를 달성하기 위해 계산량을 극대화한 XGBoost에 대해서 소개하고 있다. 캐글 대회에서 압도적으로 우승을 많이 한 모델로 아직까지도 사랑받고 있는 모델 중 하나이다.

 

이 책의 핵심 주제는 XGBoost의 구조, 기능, 성능이지만 1장에서는 머신러닝을 위한 데이터 준비. 즉 데이터 랭글링에 대해서도 친절하게 설명해주고 있다.

 

데이터 랭글링이란 머신러닝을 시작하기 전에 다양한 데이터 전처리 단계를 포함하는 광범위한 용어이다. 데이터를 로드하고, 전체 구조를 살피고, 누락된 값을 처리하고, 수치 특성으로 데이터를 변환하고, 훈련 세트와 테스트 세트로 나누고, 교차 검증을 수행하는 등 데이터 로딩, 정제, 분석, 조작이 모두 데이터 랭글링에 포함된다.

 

이러한 데이터 랭글링 과정이 책의 전 범위에 걸쳐 사용되므로 꼭 익혀야 할 개념 중의 하나이다.

 

 

3장에서는 XGBoost의 경쟁 도구이자 대표적인 앙상블 방법인 랜덤 포레스트에 대해 설명한다. 배깅부스팅에 대한 개념 설명부터 랜덤 포레스트의 성능을 높이기 위해 warm_start 매개변수로 n_estimators 를 조절하고 oob_score_ 점수를 사용해 오차를 측정하는 방법을 제시한다.

 

 

본격적인 XGBoost에 대한 설명은 5장에서 시작된다.

XGBoost는 속도에 주안점을 두어 설계되었는데, 다음과 같은 기능 덕분에 다른 앙상블 알고리즘에 비해 큰 장점을 가지고 있다.

  • 근사 분할 탐색 알고리즘
  • 희소성 고려 분할 탐색
  • 병렬 컴퓨팅
  • 캐시 고려 접근
  • 블록 압축과 샤딩

이 외에도 XGBoost로 최상의 머신러닝을 만들기 위해 사용하는 파라미터 최적화와 수학 공식 등을 소개하고, XGBoost를 세상에 알리게 된 캐글 대회인 힉스 보손 (Higgs boson) 대회를 위한 모델을 만들 수 있다.

 

 

9장에서는 XGBoost를 사용해 캐글 대회에서 우승한 캐글 마스터의 팁과 기법들을 배울 수 있다. 강력한 머신러닝 모델을 만드는 데 적용할 수 있는 기술인 Feature Engineering, 홀드 아웃 세트, VotingClassifierVotingRegressor를 사용해 상관관계가 낮은 머신러닝 앙상블을 만드는 방법, 최종 모델을 위해 스태킹을 사용하는 방법과 그 장점에 대해 배울 수 있다.

 

 

 

10장에서는 튜닝보다는 프로세스에 중점을 두어 앞 장에서 배운 모든 것을 연결하여 제품으로 사용할 수 있는 강력한 머신러닝 모델을 만드는 새로운 방법을 배운다. NullValueImputer 클래스, ColumnTransformer여러 종류의 누락된 값을 대체하는 변환기를 만드는 방법, 여러 종류의 특성으로 구성된 데이터를 원-핫 인코딩하는 방법, 이 모든 과정들을 scikit-learnPipeline 모듈을 이용하여 전처리 과정과 모델링 과정들을 하나의 파이프라인으로 만드는 방법을 배운다.

 


 

이 책을 보면 시중에 나온 캐글 상위권을 위한 팁들을 모아놓은 책들을 볼 필요가 없겠다고 느껴졌다. 

대회를 참여하다 보면 그 정확도와 성능이 검증된 모델을 쓰기 마련이고 그 모델 중의 하나가 바로 XGBoost라고 생각한다.

 

XGBoost의 배경부터 시작하여 주요 하이퍼 파라미터 튜닝 기법, gbtree, dart, dblinear, 랜덤 포레스트 등의 기본 학습기, 홀드 아웃 세트와 이 외에도 앙상블, 스태킹 등의 여러 중요한 기법들을 이 책에서 모두 다루고 있다. 

 

마지막으로 전처리 과정과 모델링 과정들을 하나의 파이프라인으로 구성해서 재사용성까지 높일 수 있는 방법도 제시하고 있다. 

 

추후 머신러닝을 이용하는 대회에 참여할 때, 이 책을 다시 한번 꺼내 볼 것이다. 

 

 

"한빛미디어 < 나는 리뷰어다 > 활동을 위해서 책을 제공받아 작성된 서평입니다."
반응형

댓글